Androidの中で)(.containsを使用して、キーワードの文字列マッチング

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);

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=225279&siteId=1