Wie zerlegt eine Zeichenkette von zahlen in int-array?
Wie split-string mit zahlen in int-array ich.e
String s="12345";
int i[]=new int[5];
i[0]=1;
i[1]=2;
i[2]=3;
i[3]=4;
i[4]=5;
ich habe es versucht, indem
String s="12345";
int i[]=new int[5];
int tem = Integer.parseInt(s);
for(int t=0;t<5;t++){
i[4-t]=tem%10;
tem=tem/10;
}
es ist ein geben richtige Antwort im obigen Fall, aber im Falle von
String s="73167176531330624919225119674426574742355349194934"
schlägt es fehl, so ist irgendein anderer Weg oder wie split-Methode in obigem Fall
- Gehen Sie durch die Zeichen (
charAt
,length
vonString
) und-'0'
von Ihnen. Geben Sie die zahlen, die Sie speichern können, in einemint[]
.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie Charakter.getNumericValue(char)
Weil deine Nummer nicht passen, in den integer-Bereich, noch im Fernkampf. Auch zu beachten Sie, Ihre-code nicht effizienter durch Teilung und modulas Betreiber als auch. Stattdessen können Sie immer verwenden charAt api von String und konvertieren von einzelnen Zeichen zu einer Nummer, wie unten geben:
- '0'
?!!Den Täter ist diese Codezeile:
Wenn Sie geben Sie eine großen Zahl Zeichenkette, die außerhalb des Bereichs von dem, was ein
int
unterbringen können, der überlauf passiert, und so können alle von einer plötzlichen Sie arbeiten auf eine andere Nummer als das, was war in Ihrem string.Ich würde dir empfehlen, zu iterieren über jedes Zeichen der Zeichenfolge, und klicken Sie dann konvertieren jedes Zeichen zu integer:
split()
Methode allgemein anwendbar ist, wo Sie teilen möchten, auf Ihrem string basiert auf komplexen splitter, die mit regex. Hier, da wollen Sie nur zu Lesen, jeder Charakter, direkt erste Zeichen-array geeignet scheint.Können Sie einfach verwenden Character wrapper-Klasse und Holen Sie sich den numerischen Wert ein, und fügen Sie Sie zum array in.