Parsen einen string-array in java
sNums = scanString.nextLine();
String[] num = sNums.split(" ");
for (int i = 0; i < num.length; ++i)
{
numbers = new double[i+1];
numbers[i] = Double.valueOf(num[i]);
}
for(double item: numbers)
out.print(item + " ");
Ich versuche, ändern Sie die Zeichenfolge von zahlen, die ich die "num" - in diesem Fall in ein array von double. Ich bin mir ziemlich sicher das sollte funktionieren, aber für einige Grund es ' s die Speicherung von "0.0" in jedem element eingegeben werden, außer der letzten. Zum Beispiel, wenn ich geben Sie "1 5 7 90 52[enter]" die Ausgabe sollte "1.0 5.0 7.0...etc" sondern, was ich bekomme, ist "0.0 0.0 0.0 0.0 52.0"
- Sie erstellen ein neues array jedes mal in der Seite, die for-Schleife.
- Naja...das ist peinlich. Trotzdem danke, ich hatte darüber nachgedacht, diese viel zu lange
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das problem, das Sie haben ist, dass Sie erstellen ein neues array in der Schleife. Sollten Sie nehmen Sie es aus und initialisiert.
out.print(numbers[i] + " ");
Sind Sie neu das array jedes mal in der for-Schleife. Auch Sie sind mit einem
for each
bei der zweiten für und nicht mit Sie, miti
statt. Das würde nicht kompilieren, dai
wurde nie deklariert, in diesem Bereich.. Trotzdem schlage ich vor, Sie vergessen über arrays in Java und verwenden Sie Listen, Sie sind viel bequemer.ArrayIndexOutOfBoundsException
Es wird nicht kompiliert, als ich war nicht definiert. Und der OP hat sich die Frage so beantworten Sie ist nicht gültig für die Frage.Double.valueOf()
.i
.for(String num : sNUms.split(" ") { numbers.add(Double.valueOf(num)); }
ist genug.Double.valueOf
zurückDouble
, nichtdouble
. Ja, Sie brauchen nicht diei
index, gleich als zweiter für.Du bist einfach erstellen ein neues array mit der zunehmenden Größe in der Schleife bei jeder iteration. Sie müssen nur zum erstellen eines neuen array-einmal und füllen Sie die Werte in der Schleife.
Sind Sie misnaming unter
num
undnumber
.erstellen Sie ein neues array wird jedes mal der erste
for
Schleife. eher entfernen Sie es aus der Schleife und legen Sie es vor dieloop
Anweisung, wie Sie Taten.Sie drucken es falsch mit
enhanced-for
Schleife:Lieber direkt drucken mit
item
:Mit 'args' von der Befehl Linie Argumente, die Sie verwenden können: