Scanner-Klasse überspringt Leerzeichen
Bin ich mit einer verschachtelten Scanner
Schleife zum extrahieren der Stelle von string line (aus einer text-Datei) wie folgt:
String str = testString;
Scanner scanner = new Scanner(str);
while (scanner.hasNext()) {
String token = scanner.next();
//Here each token will be used
}
Das problem ist dieser code wird überspringen alle Räume " "
, aber ich brauche auch diese verwenden, um "Räume" zu. So können Scanner
Rückgabe der Räume oder muss ich etwas anderes verwenden?
Meine text-Datei enthalten könnte so etwas wie dieses:
0
011
abc
d2d
sdwq
sda
Diese leeren Zeilen enthält 1 " "
jeden, und diejenigen, die " "
sind, was ich brauche, zurückgegeben.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden, Scanner
hasNextLine()
undnextLine()
Methoden und finden Sie Ihre Lösung, da dies ermöglicht es Ihnen, capture-leer oder white-space lines.Standardmäßig wird ein scanner verwendet, Leerzeichen getrennten Token.
Verwenden Scanner#nextLine - Methode, Fortschritte dieser scanner nach der aktuellen Zeile und gibt die Eingabe übersprungen wurde. Diese Methode gibt den rest der aktuellen Zeile, ohne jede Zeile Trennzeichen am Ende. Die position eingestellt ist, an den Anfang der nächsten Zeile.
Lesen Sie mehr von http://docs.oracle.com/javase/tutorial/essential/io/scanning.html
Haben Sie zu verstehen, was ein token. Lesen Sie in der Dokumentation
Scanner
:Könnten Sie die
nextLine - ()
Methode, um die gesamte Zeile und nicht "ignorieren" mit einem Leerzeichen.Besser, Sie könnten definieren, was ist ein token mit der
useDelimiter
Methode.Wird dies für Sie arbeiten
equals
und nicht==
Betreiber.