hasNext(String pattern)
liefert nur true
wenn das nächste Token dem Muster übereinstimmt. In Ihrem Fall ist "asda"
das nächste Token, und das entspricht NICHT "[A-Z]+"
. Die Dokumentation ist dadurch klar, dass "der Scanner keine Eingabe vornimmt".
Wenn Sie das Muster in "[A-Za-z]+"
ändern, erhalten Sie drei Token, die möglicherweise Ihren Vorstellungen entsprechen.
Wenn Sie in der Tat nur Token zu bekommen, die "[A-Z]+"
übereinstimmen, dann können Sie eine der folgenden Aktionen:
- einfach nicht passende Token
useDelimiter("[^A-Z]+")
, verwerfen dann einfach aufrufen next()
- verwenden
skip("[^A-Z]+")
- Verwendung
findInLine("[A-Z]+")
Tipp: Wenn die Leistung kritisch ist, sollten Sie die vorkompilierten Pattern
Überladungen dieser Methoden verwenden.
Tipp: Denken Sie daran, dass "Xooo ABC"
zwei "[A-Z]+"
Übereinstimmungen hat. Wenn dies nicht das ist, was Sie wollen, dann muss die Regex ein bisschen komplizierter sein. Oder Sie können immer einfach nicht passende Token einfach verwerfen.