Frage

Ich versuche, die Scanner-Klasse zu verwenden, um eine Linie mit dem nächsten (Pattern-Muster) Methode, um lesen Sie den Text vor dem Doppelpunkt und dann nach dem Doppelpunkt zu erfassen, so dass s1 = textbeforecolon und s2 = textaftercolon.

Die Zeile sieht wie folgt aus:

etwas: somethingelse

War es hilfreich?

Lösung

Es gibt zwei Möglichkeiten, dies zu tun, je nachdem, speziell, was Sie wollen.

Wenn Sie die gesamte Eingabe von Doppelpunkte teilen möchten, dann können Sie die useDelimiter() Methode verwenden, wie andere haben darauf hingewiesen:

// You could also say "scanner.useDelimiter(Pattern.compile(":"))", but
// that's the exact same thing as saying "scanner.useDelimiter(":")".
scanner.useDelimiter(":");

// Examines each token one at a time
while (scanner.hasNext())
{
    String token = scanner.next();
    // Do something with token here...
}

Wenn Sie jede Zeile mit einem Doppelpunkt teilen wollen, dann wäre es viel einfacher sein String des split() Methode zu verwenden:

while (scanner.hasNextLine())
{
    String[] parts = scanner.nextLine().split(":");
    // The parts array now contains ["something", "somethingelse"]
}

Andere Tipps

ich nie Muster mit Scanner verwendet haben.

Ich habe immer nur das Trennzeichen mit einem String geändert. http : //java.sun.com/j2se/1.5.0/docs/api/java/util/Scanner.html#useDelimiter (java.lang.String)

File file = new File("someFileWithLinesContainingYourExampleText.txt");
Scanner s = new Scanner(file);
s.useDelimiter(":");

while (!s.hasNextLine()) {
    while (s.hasNext()) {
        String text = s.next();
    System.out.println(text);
    }

    s.nextLine();
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top