次のパラメータを使用して翻訳メソッドを作成しようとしています。しかし、私がこのメソッドを実行するたびに、最初のifステートメントをスキップし、2番目のforループに移動します。最初のインデックスが文字列と一致する場合、配列の2番目のインデックスを読み込んで返しますか?
/** wordListのデータに従って単語を変換し、大文字と一致させます。 パラメータwordListには、翻訳のマッピングが含まれています。データは で、長さ2の文字列配列を含むArrayListで構成されています。最初の セル(インデックス0)にはキーと呼ばれる元の言語の単語が含まれています。 と2番目のセル(インデックス1) wordListの項目は、最初のセルのキーに従って昇順でソートされているとします。 @param word 翻訳する単語。 @param wordList 変換マッピングを含むArrayListです。 @return元のものと同じ大文字小文字のwordList内のマッピング。 がwordListに一致しない場合は、wordと同じ長さのConfig.LINE_CHARの文字列を返します。 */
public static String translate(String word, ArrayList<String[]> wordList) {
String newWord = "";
int i = 0;
for (i = 0; i < wordList.size(); i++) {
word = matchCase(wordList.get(i)[0], word); //make cases match
if (word.equals(wordList.get(i)[0])) { //check each index at 0
newWord = wordList.get(i)[1]; //update newWord to skip second for loop
return wordList.get(i)[1];
}
}
if (newWord == "") {
for (i = 0; i < word.length(); i++) {
newWord += Config.LINE_CHAR;
}
}
return newWord;
}
私が実行しているファイルの場合、各単語は、訳語ので何Config.LINE_CHARが印刷されるべきではないが必要です。しかし、これは印刷する唯一のものです。これをどのように修正するのですか?
ありがとうございます!それは今働く。 – Shalheira
優秀!あなたはそれを整理してうれしいです。 – phatfingers
あなたのレッスンの制約は何か分かりませんが、将来の開発のために組み込みの "equalsIgnoreCase"メソッドに注意する必要があります。 – phatfingers