【问题标题】:'If' Statement Failing Check Involving String Array [duplicate]'If'语句失败检查涉及字符串数组[重复]
【发布时间】:2015-02-11 20:58:55
【问题描述】:

我正在尝试在 Java 中创建一个程序,该程序允许用户从包含在字符串数组中的咖啡列表中挑选并继续,但它未能通过检查并打印出 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];

虽然此处未显示,但我相信稍后在程序中所有内容都已正确格式化。有什么想法吗?

【问题讨论】:

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


    【解决方案1】:

    一般来说,在 java 中比较对象是否相等时,使用.equals()。使用== 比较原语。在 java 中,Strings 是对象。

    改变:

    if (coffee == flavors[i]) {
    

    到:

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

    在将对象与== 进行比较时,只有当它们实际上是同一个实例时它们才会相等。

    【讨论】:

    • 好像明白了。谢谢,亚萨!
    猜你喜欢
    • 1970-01-01
    • 2015-12-02
    • 1970-01-01
    • 2015-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多