Arhsy:
String a = "Hello my name is Sap";
String b = "HelloisSapmyname";
String c = "Sap is my name";
String d = "Sap";
String keyword = "Sap";
私が使用している場合.contains()
には、すべての文字列についても同様です。
それはどのようにBを除くすべてのケースについて、それは本当ですか?
注:キーワードの前にスペースを追加すると、最初の単語場合は、キーワード場合は動作しません。助けてください!
EDIT:追加されたすべての可能な条件
SOLUTION:他の回答からの助けを借りて、私は解決策を見つけたすべての条件を満たし
if (a.contains(" "+key+ " ") || a.startsWith(key+" ")
|| a.equals(key) || a.endsWith(" "+key))
速くこれよりも正規表現のでしょうか?
ハーリド・シャー:
あなたは、単に正規表現を使用することができます。ワードboundryのための\ bは使用。
Pattern p = Pattern.compile("\\bSap\\b");
String a ="Hello my name is Sap";
Matcher m1 = p.matcher(a);
System.out.println( m1.find());// return true
String b = "HellomynameisSap";
Matcher m2=p.matcher(b);
System.out.println( m2.find());//return false
String c = "Hello Sap my name";
Matcher m3=p.matcher(c);
System.out.println( m3.find());//return true
String d = "Sap";
Matcher m4=p.matcher(d);
System.out.println( m4.find());//return true
デフォルトでは大文字と小文字が区別されます。あなたはケース非感受性をしたい場合、あなたは初期化する必要がありPattern
、このように。
Pattern p = Pattern.compile("\\bsap\\b",Pattern.CASE_INSENSITIVE);