2016-07-12 40 views
0

javaでは、特定の文字列が文字列配列の一部であることを見つける方法があります。 私は避けたいループを実行できます。Java - 文字列配列の文字列を検索する

String [] array = {"AA","BB","CC" }; 
string x = "BB" 

私は、このコードは、あなたのために働くだろう

if (some condition to tell whether x is part of array) { 
     do something 
    } else { 
    do soemthing 
    } 
+0

0研究努力...との質問 – Li357

+5

信じられないほど怠惰な質問は何あなたがSO – Tom

+0

あなたはそれが醜いだと思うので、ループを避けるためにしたいですか?それともO(n)よりも優れたパフォーマンスを実現する方法が必要なのか? – ha9u63ar

答えて

10

のような何かを実行します。 xは配列に存在するリスト...)

例:

if(Arrays.asList(array).contains(x)){ 
    // is present ... :) 
} 
+1

これは 'array'の各要素をチェックして' x'にマッチするかどうかを調べることを排除するものではなく、単にプログラマーからその仕事を隠すことに注意してください。この回答をノックしないでください。人々はそれがすべてであることに気づくべきです。 –

3

をしたいと思います:文字列の場合はtrue、その復帰以来

Arrays.asList(array).contains(x); 

bool count = false; 
for(int i = 0; i < array.length; i++) 
{ 
    if(array[i].equals(x)) 
    { 
     count = true; 
     break; 
    } 
} 
if(count) 
{ 
    //do some other thing 
} 
else 
{ 
    //do some other thing 
} 
+1

これは動作しません。ブール値を設定したり、ループの内部でカウントしたり、ループの外側で変数をチェックして何かを行う必要があります。しかし、私はループを避けたい。 –

+0

OPは値がアレイに存在しない場合は何か他のことを行います。 – azurefrog

+0

次に、ループ内で '0'で初期化された変数を使用して、それが任意の文字列と一致するかどうかを確認できます。変数が0でなければループの外側をチェックし、次に何か他のことをしてください... – VatsalSura

2

また、はるかに高く評価方法containsを提供アパッチからcommons-langライブラリを使用することができます。

import org.apache.commons.lang.ArrayUtils; 

public class CommonsLangContainsDemo { 

    public static void execute(String[] strings, String searchString) { 
     if (ArrayUtils.contains(strings, searchString)) { 
      System.out.println("contains."); 
     } else { 
      System.out.println("does not contain."); 
     } 
    } 

    public static void main(String[] args) { 
     execute(new String[] { "AA","BB","CC" }, "BB"); 
    } 

}