Lesen Integer aus der Datei in eine arraylist
import java.util.Scanner;
import java.io.*;
import java.util.ArrayList;
public class Test
{
public static void main (String args[]) throws java.io.IOException
{
Scanner s = new Scanner(new File("filepath"));
ArrayList<Integer> list = new ArrayList<Integer>();
while (s.hasNext()){
if(s.hasNextInt()){
list.add(s.nextInt());
}
}
s.close();
System.out.println(list);
}
}
Ich versuche zu Lesen, nur ganzzahlige Werte aus einer text-Datei hat Folgendes format pro Zeile: text integer text.
Dies ist, was ich habe, so weit, aber wenn ich kompilieren und ausführen, druckt er nie endende [] aus welchem Grund auch immer.
Bitte beachten Sie, dass änderte ich den Dateipfad nur für den Upload hier, das ist nicht das Problem.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Diese Schleife ist der übeltäter:
Überlegen, was passiert, wenn der scanner
hasNext
, aber was auch immer das nächste token, es ist nicht einint
. In diesem Fall ist die Schleife wird unendlich, weil der Körper der Schleife wird nichts mehr zu sich nehmen, verlassen Sie den scanner in genau dem gleichen Zustand, wo es war, am Anfang der Schleife.Um dieses problem zu beheben, fügen Sie eine
else
zu Ihremif
Lesens.next()
, und ignorieren das Ergebnis:Versuchen Sie dies:
Haben Sie direkten den Leser-Kopf zu bewegen Vergangenheit die Zeile und dann die hasNext() Funktion bestimmen, wenn es einen neuen Inhalt.
Problem mit diesem block
was Sie tun sollten, Lesen Sie die angegebene format:
Hoffe, das hilft.