0

Javaで書かれた次のコード

public static void main (String [] args) throws Exception
{
    ordListe ol = new ordListe();
    ol.lesBok("navn.text");
    ol.leggTilOrd("hello");
    ol.leggTilOrd("Hello");

私の主な方法です。これは、ファイルからの読み取りと配列リスト(辞書)への追加に関するものです。「こんにちは」と「こんにちは」は同じ単語であると想定されており、下のコードでは、その単語の数を増やす必要があります。

for (int i = 0; i < ordListe.size(); i++)
    {
        if (ordListe.toString().contains(s))
        {
            if (ordListe.get(i).toString().equalsIgnoreCase(s))
            {
                ord.oekAntall();
                System.out.println("'" + s + "' That word is found and there are " + ord.hentAntall() + " of that word now in dictionary.");
                break;
            }
        }

        else
        {
            Ord ny = new Ord(s);
            ordListe.add(ny);
            System.out.println("'" + s + "' This word is added. " + ny.hentAntall() + " of this word in dictionary.");
            break;
        }
    }

これは私のコードの一部です。ol.leggTilOrd("hello"); leggTilOrdメインメソッドから、上記のコードが取得された私のメソッドのような単語を追加します。これは、dictionary/arrayList に単語を追加し、inputwords が既に存在するかどうかを確認するコードの一部です。if (ordListe.get(i).toString().equalsIgnoreCase(s))特定の部分以外は問題ありません。arrayList に単語が存在する場合、その単語の数を増やすことになっています。そうでない場合は、その単語を配列リスト (ordListe) に追加します。ol.leggTilOrd("hello")問題は、 orを追加してもol.leggTilOrd("Hello"); 大文字の 'H' では、上記のステートメントを使用しても同じ単語として認識できません。これを行うにはどうすればよいですか、他の可能性はありますか?これまでに何度も試みた後、これが私の最後の可能な努力です。

上記で疑問に思うことがあれば、教えてください。

4

2 に答える 2

0

問題は次の行です。

if (ordListe.toString().contains(s))

1) 2 つの文字列の小文字バージョンまたは大文字バージョンを比較していないため、2) おそらく toString をオーバーライドしていないため、おそらく期待どおりにリスト内の項目が返されます。ordliste が arraylist を拡張すると仮定して、この関数を ordListe クラスに入れます。

public boolean containsIgnoreCase(String item) {
     for(int i = 0; i < size(); i++) {
           if (get(i).toString().equalsIgnoreCase(item)) {
               return true;
           }
     }

     return false;
}

これで、containsIgnoreCase を呼び出して、大文字と小文字を無視してリストに特定の項目があるかどうかを判断できます

于 2014-10-19T18:29:43.243 に答える
0

比較する前に両方の文字列を小文字に変更してから比較してください..それはあなたを助け、より簡単になります!!! toLower 関数を使用して比較する

于 2014-10-19T18:02:51.933 に答える