Java中的等字符串不相等(==)?

Rav*_*vin 3 java

可能重复:
Java中的字符串:equals vs ==

大家好,为什么这个Java代码不能正常工作(if语句总是被读为False,总是给任何输入输出4,包括Anish和"Anish")?

import java.util.Scanner;  
public class lkjlj {  
    public static void main(String args []) {  
        Scanner Pillai = new Scanner(System.in);  
        System.out.println("Enter Your name");  
        String nabeel = Pillai.nextLine();  
        System.out.println(nabeel);  
        if (nabeel == "Anish") {  
            System.out.println("Your Age is 6");  
        } else {
            System.out.println("Your age is 4");  
        }
    }  
}
Run Code Online (Sandbox Code Playgroud)

Pau*_*lin 12

您应该使用.equals进行字符串比较,而不是==.

  • 虽然解释为什么特别是对于作为Java初学者的OP而言,+1很好的答案将不胜感激.幸运的是其他人提供了它. (3认同)

Ton*_*ony 10

用这个: nabeel.equals("Anish")

在Java中,String.equals检查两个字符串是否具有相同的内容,同时==检查它们是否是同一个对象.


Sri*_*thy 8

使用

if(nabeel.equals("Anish"))
{
...
}
Run Code Online (Sandbox Code Playgroud)

因为,要比较字符串的相等性,请不要使用==.==运算符检查两个对象是否完全相同.两个字符串可以是不同的对象,但具有相同的值(在它们中具有完全相同的字符).使用.equals()方法比较字符串是否相等.