Trennzeichen in Scanner Java Verwirrung

Laut Java-API-Scanner verwendet Trennzeichen zu brechen, die die gesamte input in tokens. Ich bin versucht, zu verstehen, die Token und Trennzeichen. Ich habe das Programm und drücken Sie eine Verwirrung

import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        Scanner s = null;
        try {
            s = new Scanner(System.in);
            s.useDelimiter("A");
            System.out.println("1 " + s.next().length());
            System.out.println("2 " + s.next().length());
            System.out.println("3 " + s.next().length());
            System.out.println("4 " + s.next().length());
        } finally {
            if (s != null) {
                s.close();
            }
        }
    }
}

Wenn ich den Eingang AAAAAasdf ich bekomme die folgende Ausgabe.

1 0
2 0
3 0
4 0

Kann ich verstehen diese Ausgabe als die Länge des tokens ist null zwischen den Trennzeichen daher werden alle gleich null sind, aber wenn ich den default-Trennzeichen und geben Sie die Eingabe als

_____aaa\n ->Ersetzen Sie den Unterstrich durch ein Leerzeichen und \n von mir zu schlagen, geben Sie in der eclipse-Konsole.

Dafür bin ich immer die Ausgabe als

1 3

den ich nicht verstehen kann. Ich habe 5 Räume, es sind also 4 Token von 0 Längen zwischen Ihnen. Warum nicht? Was vermisse ich hier?

  • ich würde davon ausgehen, scanner überspringt die Räume
  • Es arbeitet nach regex-Muster. Siehe die meisten von Ihnen positiv bewertet werden Antwort und API-Referenz in den Kommentar.
InformationsquelleAutor Aseem Bansal | 2013-11-06
Schreibe einen Kommentar