2013-02-20 14 views
7

文字列に大文字と小文字が区別されていないかどうかを確認する方法はありますか?文字列にcontainsとequalsIgnoreCaseを使用する方法

例えば

:(このコードは、それはあなたが私の質問の基本的な理解を得るためだけのためです無効です)

String text = "I love ponies"; 

if(text.contains().equalsIgnoreCase("love") { 
    // do something 
} 

EDIT: --------まだ

を動作していませんうーん、それは動作していないことが判明。ここに私が使っているものがあります。 (それはゲームのための呪いフィルタです)

public void onChat(PlayerChatEvent event) { 
    Player player = event.getPlayer(); 
    if (event.getMessage().contains("douche".toLowerCase()) || /* More words ... */) { 
     event.setCancelled(true); 
     player.sendMessage(ChatColor.GOLD + "[Midnight Blue] " + ChatColor.RED + "Please Don't Swear."); 
    } 
} 

それは小文字で動作しますが、大文字ではありません。

+1

の可能性の重複[は、大文字と小文字を区別java.lang.Stringのメソッドが含まれていますか?](http://stackoverflow.com/questions/86780/is-the-the-in-the-java-lang-string-case-sensitiveメソッド) – Eric

+0

あなたはStackOverflowを初めて使用しているので、[最良のオプションを答えとしてマークしてください] //meta.stackexchange.com/a/5235/182862) –

+0

答えを正しく読んでいないので、まだ動作していません。そのスタイルを使用したい場合は、Anubhooti Pareekの答えを再度読んでください。 –

答えて

-6

大文字と小文字の区別があなたの唯一の問題は、小文字

String text = "I love ponies"; 
String test = "LOVE"; 
if(text.toLowerCase().contains(test.toLowerCase())) 
{ 
//your code 
} 

更新にすべてを変換されている場合は、この

text.contains(s); 
text.contains(s.toLowerCase()); 
+1

これは間違っています: 's =" aBc "'、 'text =" AbC "'。 [両方とも 'false'です。](http://ideone.com/Y2Zh6u) – Eric

+0

私はそれが単純であることを知っていました、私はそれを過度に複雑にしていました。笑 –

+1

@ヘイデンテイラーいいえ、この答えを無視してください –

3

のように二回確認することができます:あなたのコードを使用するために :

event.getMessage().toLowerCase().contains("douche".toLowerCase()) 

すべての条件で

16
return text.toLowerCase().contains(s2.toLowerCase()); 

それとも別の方法は次のようになり

Pattern.compile(Pattern.quote(s2), Pattern.CASE_INSENSITIVE).matcher(text).find(); 
+0

私は最初の解決策が好きです。非常にスムーズ:) – TPRammus

5

あなたは、あなたはまだ、コードを使用することができ、サードパーティのライブラリを追加することができない場合は、Apache Commonsライブラリ

からStringUtils#containsIgnoreCaseを使用する場合、それは容易になるだろう使用することが自由であるためです。 online source codeを確認してください。

テスト:

public class QuestionABCD { 
    public static boolean containsIgnoreCase(String str, String searchStr) { 
     if (str == null || searchStr == null) { 
      return false; 
     } 
     int len = searchStr.length(); 
     int max = str.length() - len; 
     for (int i = 0; i <= max; i++) { 
      if (str.regionMatches(true, i, searchStr, 0, len)) { 
       return true; 
      } 
     } 
     return false; 
    } 

    public static void main(String[] args) { 
     System.out.println(containsIgnoreCase("abc", "A")); 
     System.out.println(containsIgnoreCase("abc", "a")); 
     System.out.println(containsIgnoreCase("abc", "B")); 
     System.out.println(containsIgnoreCase("abc", "b")); 
     System.out.println(containsIgnoreCase("abc", "z")); 
     System.out.println(containsIgnoreCase("abc", "Z")); 
    } 
} 

出力:

true 
true 
true 
true 
false 
false 
+2

OPはサードパーティのライブラリを追加したくない場合は、あなたが与えた代替のための+1 :) – LGAP

関連する問題