-1

非常に長い文字列内のいずれかの単語が「the」という単語であるかどうかを確認する必要があるため (次に、これが何回発生したかを数えます)、文字列をリストの個々の要素に分割します。

String [ ] list1 = phrase1.split(" "); 

リストの個々の要素を文字列「the」と比較するにはどうすればよいですか?

私が使用する配列で

int count = 0;
for (int i = 0; i < string.length; i++)
 {
   if (string[i].equals("the"))
   {
     count++;
   }
}

return count;

ただし、そのようなリストで要素を呼び出すことはできません。私は何をしますか?

リストで equals メソッドを使用できますか?

編集: 次のように受け取った回答を適用しようとしました

static public int countWordsEqualTo( String [ ] list, int wordcount, String wordsearch)
    {
        int count = 0;
        String[] list1 = list.split(" ");
        for(String word: list1)
        {
            if (word.equals(wordsearch))
            {
                count++;
            }
        }

        return count;
    }

コンパイルされません。私は何を間違えましたか?

4

5 に答える 5

1

配列とリストの両方に変更された for ループを使用できます

String[] list1 = phrase1.split(" "); 

int count = 0;
for (String item : list1)
 {
   if (item.equals("the"))
   {
     count++;
   }
}

return count;
于 2013-10-25T04:51:59.093 に答える
0

誤った変数 ''string[i]' と "the" を比較しています。list1 の名前を文字列に変更するか、次の 2 つのステートメントを次のように変更します。

for (int i = 0; i < list1.length; i++)

if (list1[i].equals("the"))
于 2013-10-25T04:56:24.330 に答える
0

実際にはequalsリストで使用できますが、意図または希望する方法では使用できません。さらに、(文字列のリスト)String[]ではなく、文字列の配列があります。List<String>

あなたがしたいことは、その配列を繰り返し処理し、各項目、つまり単語を「the」と比較することです。

int count = 0;
for (String word : list1) {
   if (word.equals("the")) {
     count++;
   }
}

return count;
于 2013-10-25T04:41:24.037 に答える
0

これはあなたの編集への答えです

次の理由により、コードは正常にコンパイルされません。

String[] list1 = list.split(" "); //here list is String[]   

String#splitこの文字列を、指定された正規表現の一致で分割します。String[] の配列を呼び出すことはできません

与えString[] listられた文字列配列の文字列「the」をチェックしたい場合は、単純にArrayUtils#contains()を使用します

public static boolean contains(Object[] array,
                           Object objectToFind)

オブジェクトが指定された配列にあるかどうかを確認します。

null 配列が渡された場合、メソッドは false を返します。

パラメータ:
array - 検索する配列
objectToFind - 検索するオブジェクト

戻り値:
配列にオブジェクトが含まれている場合は true

クラスを使用ArrayUtilsすると、ダウンロードするjarが必要です。このリンクからダウンロードできます

また、指定された文字列内の文字列「the」の出現をカウントしたい場合は、StringUtils#countMatches(java.lang.String, java.lang.String)を使用できます。

public static int countMatches(String str,
                           String sub)

部分文字列がより大きな文字列に出現する回数をカウントします。

null または空の ("") 文字列入力は 0 を返します。

StringUtils.countMatches(null, *)       = 0
StringUtils.countMatches("", *)         = 0
StringUtils.countMatches("abba", null)  = 0
StringUtils.countMatches("abba", "")    = 0
StringUtils.countMatches("abba", "a")   = 2
StringUtils.countMatches("abba", "ab")  = 1
StringUtils.countMatches("abba", "xxx") = 0

パラメータ:
str - チェックする文字列。null の場合もあります。
sub - カウントする部分文字列。null の場合もあります。

戻り値:
出現回数、いずれかの文字列が null の場合は 0

クラス用のjarを取得するには、ここをクリックしてくださいStringUtils

于 2013-10-25T05:17:13.483 に答える