0

例えば:

if(!UserInputSplit[i].equalsIgnoreCase("the" || "an")

sytaxエラーを生成します。これを回避する方法は何ですか?

4

2 に答える 2

5

各文字列と明示的に比較する必要があります。

例:

if(!UserInputSplit[i].equalsIgnoreCase("the") || !UserInputSplit[i].equalsIgnoreCase("an"))
于 2013-02-10T04:34:49.127 に答える
1

一連の||を使用する 以前の回答で説明したように、比較したいアイテムの小さなセットがある場合は問題ありません。

if (!UserInputSplit[i].equalsIgnoreCase("the") || !!UserInputSplit[i].equalsIgnoreCase("the")) {
  // Do something when neither are equal to the array element
}

ただし、アイテムの小さなセットよりも大きいものがある場合は、代わりにマップを使用するか、次のセットを使用することを検討してください。

// Key = animal, Value = my thoughts on said animal
Map<String, String> animals = new HashMap<String, String>();
animals.put("dog", "Fun to pet!");
animals.put("cat", "I fear for my life.");
animals.put("turtle", "I find them condescending.");

String[] userInputSplit = "I have one dog, a cat, and this turtle has a monocle.".split(" "); 

for (String word : UserInputSplit) {
  word = word.toLowerCase(); // Some words may be upper case. This only works if the cases match.
  String thought = animals.get(word);
  if (thought != null) {
    System.out.println(word + ": " + thought);
  }
}

もちろん、このアプローチを採用する場合は、毎回巨大なマップを設定する必要がないため、独自のクラスに配置するか、何らかの方法で一度ロードする必要があります。

于 2013-02-10T04:59:31.223 に答える