私がJavaでこのような文字列を持っているとしましょう:
「これは{私の文字列:}わかりました」
さまざまな文字の間に任意の数の空白が存在する可能性があることに注意してください。上記の文字列をチェックして、部分文字列だけが含まれているかどうかを確認するにはどうすればよいですか。
「{私の文字列:}」
どうもありがとう!
String に別の特定の文字シーケンスが含まれているかどうかを確認したい場合は、次のようにすることができます。
String stringToTest = "blah blah blah";
if(stringToTest.contains("blah")){
return true;
}
マッチも使えます。文字列の一致に関する適切な説明については、次の正規表現に関する Java Oracle チュートリアルを参照することをお勧めします。
http://docs.oracle.com/javase/tutorial/essential/regex/index.html
乾杯、
ジェイミー
一致する文字列の各文字の間に任意の数の空白がある場合は、検索する前に、一致させようとしている文字列からすべての空白を削除する方がよいと思います。すなわち:
String searchedString = "this is {my string: } ok";
String stringToMatch = "{my string: }";
boolean foundMatch = searchedString.replaceAll(" ", "").contains(stringToMatch.replaceAll(" ",""));
最も簡単な方法は、両方の文字列からすべてのスペースを削除することです。
return stringToSearch.replaceAll("\s", "").contains(
stringToFind.replaceAll("\s", ""));
正規表現を探します
\{\s*my\s+string:\s*\}
これは、次を含む任意のシーケンスに一致します。
ここで「スペース」とは空白 (タブ、スペース、改行、cr) を意味します。
この目的のために、 を使用する必要がありますString#contains(CharSequence)
。
さまざまな文字の間に任意の数の空白を入れることができることに注意してください。
この目的のためString#trim()
に、メソッドを使用して、先頭と末尾の空白を省略した文字列のコピーを返します。
例:
String myStr = "this is {my string: } ok";
if (myStr.trim().contains("{my string: }")) {
//Do something.
}
それをすべて文字列変数に入れて、s と言ってから、s.contains("{my string: }) を実行します。{my string: } が s にある場合、これは true を返します。