Je voudrais analyser du texte à l'aide d'un analyseur descendant manuscrit. J'ai utilisé Scanner
avec le délimiteur suivant: "\\s*"
. Malheureusement, le fait que ce motif corresponde à une chaîne vide semble rendre chaque hasNextFoo
et nextFoo
ne correspondant plus à rien.Java Scanner avec délimiteur vide
La documentation ne dit rien sur les délimiteurs éventuellement vides.
mignon. Je crois que @bmargulies essaye de dire que le caractère + correspondra "au moins un", "au lieu de none ou plus". Ce qui l'empêchera de correspondre à une chaîne vide. – GrayWizardx
Oui, parce que je veux utiliser le scanner comme une lexer d'exécution. En bref, je veux être en mesure de demander 'scanner.next (pattern) ', qui renvoie la chaîne correspondante ou renvoie une exception sans consommer le flux. Les espaces devraient être ignorés. S'il y a une meilleure classe pour faire cela que scanner, je serais heureux de l'utiliser. –
Blague à part, la réponse de @ trashgod est probablement ce que veulent. Vous ne nous avez vraiment pas donné assez de contexte pour continuer ici. – bmargulies