0

Word の出現箇所を文字列に書き込むことに固執しています。使用するヒント (タスク ノート) は、compareToIgnoreCase です。だから私はこのようなことを試しました:

splitwords = StringCont.split("\\s");
for(int i=0; i<splitwords.length; i++)
{
    if(splitwords[1].compareToIgnoreCase(splitwords[i]) == 0)
        splitcount++;
}

もちろん、それは私ができることであり、おそらく悪い方法です。コードを実行すると、配列の例外が発生することもあれば、実行されることもあります。欠けているのは、すべての単語を調べてチェックし、すでにカウントされている単語をスキップすることです。これについて何か助けがあれば喜んでお手伝いしますので、先に進んでどのようにコーディングできるかを理解してください。ありがとうございました :)

編集:問題を十分に明確に説明していないようですが、必要なものを簡単にまとめたマップオブジェクトについて良い答えが得られます。地図は知りませんでした。そうそう、私は文字列で特定の単語が見つかった回数を見つけようとしていました。

tangens: 最初の単語 (最初の空白がある場所) splitwords[1] を取得し、それを文字列 splitwords[i] 内の他のすべての単語と比較し、それが 0 (等しい) の場合は count++ を意味する必要があります。

Esko: 確かに文のように空白があります。しかし、私はまだこの例外を受けています。なぜだかわかりません。

4

4 に答える 4

0

文中の特定の単語の出現または文中のすべての単語の累積単語数を探していますか?あなたのサンプルコードに基づいて私は前者を期待しますが、あなたの説明は私に後者を思い起こさせます。

いずれにせよ、明らかなことです。入力文字列に空白がない場合はString#split()、元の文字列自体である1つの要素のみを含む配列を返します。配列インデックスはゼロから始まるため、使用可能な文字列はインデックス内にsplitwords[1]あるため、これが原因です。ArrayIndexOutOfBoundsException[0]

于 2009-12-20T20:44:33.793 に答える
0

セットを使用して各単語を格納し、最後にセットのサイズを取得できます。

もちろん、単語の数ではなく、異なる単語の数を取得します。

于 2009-12-20T20:45:06.117 に答える
0

単語の出現をカウントする場合は、を使用する必要がありますHashMap<String, Integer>。そこで、見つかった単語ごとにカウンターを保存できます。

于 2009-12-20T20:47:09.647 に答える