12

文字列配列を検索し、入力文字列が文字列の最初の文字と一致した場合に結果を返す次のコードがあります。

for (int i = 0; i < countryCode.length; i++) {
            if (textlength <= countryCode[i].length()) {
                if (etsearch
                        .getText()
                        .toString()
                        .equalsIgnoreCase(
                                (String) countryCode[i].subSequence(0,
                                        textlength))) {
                    text_sort.add(countryCode[i]);
                    image_sort.add(flag[i]);
                    condition_sort.add(condition[i]);
                }
            }
        }

しかし、入力文字列が最初の文字だけでなく、文字列のどこにも一致する場所でもそれらの文字列を取得したいですか?これを行う方法?

4

7 に答える 7

27

文字列に部分文字列が含まれているかどうかを検索するには、次の3つの方法があります。

String string = "Test, I am Adam";
// Anywhere in string
b = string.indexOf("I am") > 0;         // true if contains 

// Anywhere in string
b = string.matches("(?i).*i am.*");     // true if contains but ignore case

// Anywhere in string
b = string.contains("AA")  ;             // true if contains but ignore case
于 2012-05-24T15:33:49.900 に答える
8

コメントで返信するのに十分な「評判ポイント」がありませんが、受け入れられた回答にエラーがあります。indexOf()は、部分文字列が見つからない場合に-1を返すため、次のようになります。

    b = string.indexOf("I am") >= 0; 
于 2015-03-31T11:18:19.197 に答える
3

contains(CharSequence)メソッドをチェックしてください

于 2012-05-24T15:26:05.453 に答える
0

これを試して-

etsearch.getText().toString().contains((String) countryCode[i]);
于 2012-05-24T15:26:16.417 に答える
0

以下を使用してください。

public boolean contains (CharSequence cs)

以来:APIレベル1

この文字列に、渡されたCharSequenceの文字のシーケンスが含まれているかどうかを判別します。

Parameters

cs 検索する文字シーケンス。

Returns

文字のシーケンスがこの文字列に含まれている場合はtrue 、それ以外の場合はfalse

于 2012-05-24T15:43:43.283 に答える
0

あなたはcontainsを使うことができます。のように:

myString.contains("xxx");

http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html、具体的には、contains領域も参照してください。

于 2012-05-24T15:42:09.507 に答える
0

実際、AndroidのデフォルトのArrayadapterクラスは単語全体の先頭からしか検索しないようですが、カスタムのArrayadapterクラスを使用すると、任意の文字列の一部を検索できます。カスタムクラス全体を作成し、ライブラリをリリースしました。とても使いやすいです。ここから、または以下のリンクをクリックして、実装と使用法を確認できます。

https://github.com/mohitjha727/Advanced-Search-Filter

この簡単な例を参照してください。「Mohit」と「Rohan」という名前があり、「M」のみを入力するとMohitが検索結果に表示されますが、「oh」を入力すると、MohitとRohanの両方が表示されます。共通の文字「ああ」を持っています。

ありがとうございました。

于 2020-07-29T13:32:16.010 に答える