相同条件下的不同输出

时间:2014-07-20 08:33:35

标签: java

以下是代码:

package com.myprograms.test;

import java.util.Scanner;

public class MyProgram {

    public static void main(String[] args) {

        Scanner sIn = new Scanner(System.in);
        String name = "";

        System.out.print("Enter the name:");
        name = sIn.next();

        if (name.equals("somename")) {
            System.out.println("Success - Case 1");
        } else {
            System.out.println("Failed - Case 1");
        }

        if (name == "somename") {
            System.out.println("Success - Case 2");
        } else {
            System.out.println("Failed - Case 2");
        }

        sIn.close();
    }

}

以下是输出:

Enter the name: somename
Success - Case 1
Failed - Case 2

以下是问题:

为什么对于Java中的相同条件,一个输入的行为会有所不同?这是Java错误吗?

1 个答案:

答案 0 :(得分:0)

“Java错误” - 真的...... ??

这已被多次解释,无论如何这里只是一个小解释:

在比较Java中的字符串时,请使用String.equals()String.equlasIgnoreCase()方法。

使用==运算符,比较地址。

使用equals()equalsIgnoreCase()方法比较字符串的内容。

Here是一个很好的解释(请阅读“Meet Jorman”示例):

观察:您可以在获取输入后关闭Scanner,而不是程序的最后一行,以便更好地进行资源管理。