为什么这个Java代码总是给我“假”声明?

时间:2018-04-27 15:32:33

标签: java if-statement input passwords

当我输入相同的密码(jalalkay)时,它给了我“错误”的答案!

import java.util.Scanner;

public class password2 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        Scanner pass = new Scanner(System.in);


        System.out.println("Type a password");
        String ps = pass.nextLine();

        if(ps == "jalalkay"){
            System.out.println("true");

        }else{
            System.out.println("false");
        }

    }

}

1 个答案:

答案 0 :(得分:3)

您正在使用==来比较字符串。这是不正确的。请改用.equals()

if(ps.equals("jalalkay")){
    System.out.println("true");

==运算符检查参考比较(地址比较)和.equals()方法检查以进行内容比较。换句话说,==检查两个对象是否指向相同的内存位置,.equals()评估对象中值的比较。