我现在正在学习Java,而我似乎对我的代码有疑问,我不明白。我已经设置了几个字符串并要求用户输入正确的密码。但即使密码正确,if语句仍会返回false。
import java.util.Scanner;
class apples {
public static void main(String args[]){
Scanner icecub = new Scanner(System.in);
String passln = "Please enter the correct password: ";
String passwd = "testpass";
String userpw;
System.out.print(passln);
userpw = icecub.next();
if(userpw == passwd){
System.out.println("The password is correct!");
} else {
System.out.println(userpw);
System.out.println("Incorrect password!");
}
}
}
当用户输入" testpass"它应该返回true。但它打印出来:
testpass 密码不正确!
答案 0 :(得分:1)
对于使用.equals()
if (userpw.equals(passwd))
答案 1 :(得分:1)
比较字符串使用方法等于()而不是 ==
试试这个:
public class Apples {
public static void main(String args[]){
Scanner icecub = new Scanner(System.in);
String passln = "Please enter the correct password: ";
String passwd = "testpass";
String userpw;
System.out.print(passln);
userpw = icecub.next();
if(userpw.equals(passwd)){
System.out.println("The password is correct!");
} else {
System.out.println(userpw);
System.out.println("Incorrect password!");
}
}
}
答案 2 :(得分:0)
if(userpw == passwd)
这应该是
if(userpw.equals(passwd))
无法将Java字符串与==
进行比较。无论如何,看一下String API。