【问题标题】:Why is this Java code always giving me "False" statement? [duplicate]为什么这段 Java 代码总是给我“错误”的声明? [复制]
【发布时间】:2018-04-27 15:32:33
【问题描述】:

当我输入相同的密码 (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");
        }

    }

}

【问题讨论】:

  • ps.equals("jalalkay")。您不要将字符串与相等运算符进行比较。
  • 因为你应该使用 .equals() 来比较字符串,而不是 ==

标签: java if-statement input passwords


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-23
    • 1970-01-01
    • 2017-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多