空白を含む括弧を一致させる必要があるとします。
スニペットは次のとおりです。
String input = "( ) ( ) ( )";
Pattern pattern = Pattern.compile("\\(\\s\\)");
Scanner scanner = new Scanner(input);
scanner.useDelimiter("\\n");
Matcher matcher = pattern.matcher(input);
System.out.println(scanner.hasNext(pattern)); // false
System.out.println(matcher.find()); // true
System.out.println(matcher.start(0) + " " + matcher.end(0)); // 0 3
マッチャーは私が必要としていることを正確に実行しますが、スキャナーは実行しません。
質問は正しく行われていませんでした。私の目的は、スキャナーを使用して文字列内のすべての()トークンを順番に取得することでした。これは、マッチャーがそのようなタスクに不便なAPIを持っているように見えるためです。ドキュメントをよく読んでおくべきだった。
私が必要とする方法は次のとおりです。
scanner.findInLine(pattern);