'如果'语句失败检查涉及字符串数组

时间:2014-12-13 04:52:43

标签: java arrays eclipse if-statement java.util.scanner

我正在尝试用Java创建一个程序,允许用户从String数组中包含的咖啡列表中选择并继续,但它未通过检查并打印出else语句。

以下是相关代码:

Scanner scan = new Scanner(System.in);
String[] flavors = {"Black", "French Vanilla", "Hazelnut", "Mango", "Cherokee", "anarcho-syndicalism", "Otis" };

...

System.out.println("Today we have " + Arrays.toString(flavors));
System.out.println("Please enter the name of the coffee you would like exactly as shown above: ");
String coffee = scan.next();

...

for (int i = 0; i < flavors.length; i++) {
    if (coffee == flavors[i]) {
        String selection = flavors[i];

虽然这里没有显示,但我相信程序中的所有内容都已正确格式化。有什么想法吗?

1 个答案:

答案 0 :(得分:3)

通常,在比较java中的相等对象时,请使用.equals()。使用==比较基元。在java中,String是对象。

变化:

if (coffee == flavors[i]) {

为:

if (coffee.equals(flavors[i])) {

将对象与==进行比较时,如果它们实际上是同一个实例,它们将是相等的。