あなたの質問はあいまいに表現されていると思います...入力文字列に51〜55の範囲内の数字が含まれているかどうかを確認したいですか?(あなたの文章はこれを暗示しているようです) この場合、文字列 "512 is a power of two" は数字の 51 を含まないため一致しません。
または、文字列に 51、52、53、54、または 55 の文字列が含まれていることを確認しますか? (あなたのコードはこれを暗示しているようです)この場合、文字列「512 is a power of two」は文字列 51 を含んでいるため、一致します。
最初のオプションが当てはまる場合は、次のようなものが必要です。
Pattern p = Pattern.compile("(^|[^\\d])5[1-5]($|[^\\d])");
if (p.matcher(inputString).find()) {
//The inputString contains the number you seek
}
基本的に、これが行っていることは探していることです
- 文字シーケンス 51-55
- 文字列の先頭または数字以外の文字が前にある
- 文字列の末尾または数字以外の文字が続く