次の問題が発生しました(簡略化)。私は次のように書いた
Pattern pattern = Pattern.compile("Fig.*");
String s = readMyString();
Matcher matcher = pattern.matcher(s);
1 つの文字列を読み取る際に、"Fig" で始まっていても、マッチャーは一致しませんでした。文字列の次の部分にある不正な文字まで問題を突き止めました。からのcodePoint値1633を持っていました
(int) charAt(i)
しかし、正規表現と一致しませんでした。入力プロセスのどこかで非 UTF-8 エンコーディングが原因だと思います。
Javadocは次のように述べています。
事前定義された文字クラス。任意の文字 (改行文字と一致する場合と一致しない場合があります)
おそらく、これは厳密な意味での文字ではありませんが、文字列の一部です。この問題を検出するにはどうすればよいですか?
更新: 見つけにくい (char)10 が原因でした。上記の私の診断は間違っています。以下のすべての回答は、尋ねられた質問に関連しており、役に立ちます。