私はちょっとプログラミングに慣れていますが、文字列スキャナが配列に含まれているかどうかを調べる方法がわかりません(配列に "アップル "、スキャナは"アップル "、プリントは"現在 ")。私は、Eclipse火星4.5.0を使用していて、次のように今まで私が持っているコードは次のとおりです。スキャナで配列の文字列値を確認する方法
public static void main(String[] args) {
String answer = "null"; //Initialize "answer"
String[] Fruit; //Array of Strings called "Fruit"
Fruit = new String[10]; //"Fruit" has 10 spaces
//Strings saved in "Fruit":
Fruit[0] = "Apple";
Fruit[1] = "Banana";
Fruit[2] = "Mango";
Fruit[3] = "Pear";
//The actual programme:
@SuppressWarnings("resource")
Scanner input = new Scanner(System.in);
System.out.println("Please enter a fruit:");
answer = input.next();
//If the answer is 'Fruit[0]'
if (answer == Fruit[0] || answer == Fruit[1] || //OR 'Fruit[1]' OR etc,
answer == Fruit[2] || answer == Fruit[3]) { //Print "available"
System.out.println("This fruit is available.");
}
//If the answer isn't 'Fruit[0]'
else if (answer != Fruit[0] && answer != Fruit[1] && // AND not 'Fruit[1]' AND not
answer != Fruit[2] && answer != Fruit[3]){ //etc, Print "not available"
System.out.println("This fruit is not available right now.");
}
}
しかし、それは常に同じでwhileループのために行く、「利用できません」が返されます。それは何とかdoesnのそれがArraylistに存在しているかどうかをチェックしているようだ。
誰がこの問題を解決する方法を知っていますか?私はインターネット上のどこにでも似たような質問を見つけることができなかったので、知りたいです。
EDIT:奇妙なことに、私はかなりの回数を探しました。私は1つ見逃してしまいました、重複して申し訳ありません!代わりに、使用の
** == **演算子を使用して** Strings **を比較することはできません。代わりにString比較のためにStringクラスの** equals **メソッドを使用する必要があります。また、else部分の条件を評価する必要はありません。 –
そして、Javaの命名規則について読む - 変数名はcamelCaseになります。 – GhostCat