Java 为什么不是';t如果语句工作正常

Java 为什么不是';t如果语句工作正常,java,Java,我正在获取当前的win7用户名,它是rsmith,但我的if语句如下所示: 万瑞士人 2222斯米特 为什么我的if==行不能按预期工作?用户名是rsmith String userName = System.getProperty("user.name"); System.out.println("0000 " + userName + "\n"); if (userName == "rsmith"){ System.ou

我正在获取当前的win7用户名,它是rsmith,但我的if语句如下所示: 万瑞士人 2222斯米特

为什么我的if==行不能按预期工作?用户名是rsmith

        String userName = System.getProperty("user.name");
        System.out.println("0000 " + userName + "\n");
        if (userName == "rsmith"){
            System.out.println("1111 " + userName + "\n");
        }
        else {
            System.out.println("2222 " + userName + "\n");
        }

您不应该将字符串与
=
进行比较。您应该使用
equals()
方法

 if (userName.equals("rsmith"){
   ..
 }

有关更详细的解释,请参阅。

您不应将字符串与
=
进行比较。您应该使用
equals()
方法

 if (userName.equals("rsmith"){
   ..
 }

有关更详细的解释,请参阅。

您不应将字符串与
=
进行比较。您应该使用
equals()
方法

 if (userName.equals("rsmith"){
   ..
 }

有关更详细的解释,请参阅。

您不应将字符串与
=
进行比较。您应该使用
equals()
方法

 if (userName.equals("rsmith"){
   ..
 }

有关更详细的说明,请参阅。

运算符比较两个对象引用是否引用内存中的同一对象(引用相等),而不是它们是否相等。字符串类的
equals()
实现比较两个
String
对象是否具有相同的字符(值相等)

因此,它将是:

if (userName.equals("rsmith") {
    ....
}

=
运算符比较两个对象引用是否引用内存中的同一对象(引用相等),而不是它们是否相等。字符串类的
equals()
实现比较两个
String
对象是否具有相同的字符(值相等)

因此,它将是:

if (userName.equals("rsmith") {
    ....
}

=
运算符比较两个对象引用是否引用内存中的同一对象(引用相等),而不是它们是否相等。字符串类的
equals()
实现比较两个
String
对象是否具有相同的字符(值相等)

因此,它将是:

if (userName.equals("rsmith") {
    ....
}

=
运算符比较两个对象引用是否引用内存中的同一对象(引用相等),而不是它们是否相等。字符串类的
equals()
实现比较两个
String
对象是否具有相同的字符(值相等)

因此,它将是:

if (userName.equals("rsmith") {
    ....
}

=
测试引用相等性

.equals()
测试值是否相等

因此,如果确实要测试两个字符串是否具有相同的值,则应使用
.equals()

=
用于测试两个字符串是否为同一对象

        String userName = System.getProperty("user.name");
        System.out.println("0000 " + userName + "\n");
        if (userName.equals("rsmith")){
            System.out.println("1111 " + userName + "\n");
        }
        else {
            System.out.println("2222 " + userName + "\n");
        }

=
测试引用相等性

.equals()
测试值是否相等

因此,如果确实要测试两个字符串是否具有相同的值,则应使用
.equals()

=
用于测试两个字符串是否为同一对象

        String userName = System.getProperty("user.name");
        System.out.println("0000 " + userName + "\n");
        if (userName.equals("rsmith")){
            System.out.println("1111 " + userName + "\n");
        }
        else {
            System.out.println("2222 " + userName + "\n");
        }

=
测试引用相等性

.equals()
测试值是否相等

因此,如果确实要测试两个字符串是否具有相同的值,则应使用
.equals()

=
用于测试两个字符串是否为同一对象

        String userName = System.getProperty("user.name");
        System.out.println("0000 " + userName + "\n");
        if (userName.equals("rsmith")){
            System.out.println("1111 " + userName + "\n");
        }
        else {
            System.out.println("2222 " + userName + "\n");
        }

=
测试引用相等性

.equals()
测试值是否相等

因此,如果确实要测试两个字符串是否具有相同的值,则应使用
.equals()

=
用于测试两个字符串是否为同一对象

        String userName = System.getProperty("user.name");
        System.out.println("0000 " + userName + "\n");
        if (userName.equals("rsmith")){
            System.out.println("1111 " + userName + "\n");
        }
        else {
            System.out.println("2222 " + userName + "\n");
        }
==

比较两个对象以检查它们是否引用内存中的相同位置

.equals()

比较对象的值

在您的情况下,需要使用.equals进行比较

比较两个对象以检查它们是否引用内存中的相同位置

.equals()

比较对象的值

在您的情况下,需要使用.equals进行比较

比较两个对象以检查它们是否引用内存中的相同位置

.equals()

比较对象的值

在您的情况下,需要使用.equals进行比较

比较两个对象以检查它们是否引用内存中的相同位置

.equals()

比较对象的值

在您的情况下,您需要使用.equals进行比较