自称第1種兼業ミュージシャン?えむによるブログ 

[Java]配列の中身を文字検索する方法

[Java]配列の中身を文字検索する方法です。
配列の中をメソッド一発で調べる方法があるんですね~。
配列の中身をぐるぐる回してequals判定は効率悪いと思い
色々調べました。

[例]
String test="武田";
String[] ary_test = {"武田","上杉","織田"};

こんな書き方もできるんですが、これはオブジェクト自体を比較しているだけなので
コンパイルは通りますが、testとary_testオブジェクトは当然等しくないので
falseしか返ってきません(配列の中身をみてequalsという意味ではない)

[悪い例]
if(test.equals(配列オブジェクト))
{
//一致したときの処理
}

ということで、下記が正しい記述です。
こんな便利なメソッドあるんですね~。

注意点としては比較前に配列内をソートしておくことです。
(比較は、一致した配列の順番が返ってくるので)
配列の順番として帰ってくるので判定は0以上となります。

-----------------------------------------
//比較するために配列をソートしておく
Arrays.sort(ary_test);

//配列に一致するものがあるか
if(Arrays.binarySearch(ary_test, test) >= 0)
{
//一致したときの処理
}
-----------------------------------------
※使い方のまとめ
Arrays.sort(検索したい配列);
Arrays.binarySearch(検索したい配列, "検索文字列")
 
 
プロフィール
 
 

えむ

  • Author:えむ
  • 現在ベンチャー企業を経営する傍ら
    兼業ミュージシャンとして活動中。
    お問い合わせはこちらまで。
 
 
最近の記事
 
 
 
 
最近のコメント
 
 
 
 
最近のトラックバック
 
 
 
 
月別アーカイブ
 
 
 
 
カテゴリー
 
 
 
 
ブロとも申請フォーム
 
 
 
 
ブログ内検索
 
 
 
 
RSSフィード
 
 
 
 
リンク