Java入门登录程序功能异常求助:始终输出错误提示
Java登录程序总是输出错误?看这里解决!
嘿,我太懂你这种入门时踩坑的感觉了!你遇到的这个问题,十有八九是字符串比较的方式用错了,这可是Java新手最容易掉的坑之一😅
核心问题:用==比较字符串内容
在Java里,==对于String这种引用类型来说,比较的是两个对象在内存中的引用地址,而不是字符串的实际内容。哪怕你输入的用户名和密码看起来和目标完全一样,它们也可能是内存里的不同对象,所以==会返回false,导致程序不管输入对错都输出"Wrong Combination"。
正确的解决办法:用equals()比较内容
要判断两个字符串的内容是否相同,必须用String类的equals()方法。另外,把常量字符串(比如"admin")放在equals()的前面,还能避免如果输入为空时出现的空指针异常,这是个很好的编程习惯。
给你一个可以正常运行的完整示例代码:
import java.util.Scanner; public class LoginProgram { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("Enter username: "); String username = scanner.nextLine(); System.out.print("Enter password: "); String password = scanner.nextLine(); // 关键:用equals()比较字符串内容,常量在前更安全 if ("admin".equals(username) && "securePassword".equals(password)) { System.out.println("Welcome"); } else { System.out.println("Wrong Combination"); } scanner.close(); } }
其他可能的小坑
如果你的代码里用了scanner.next()而不是scanner.nextLine(),要注意next()会在遇到空格时停止读取内容,但题目里的用户名和密码都是无空格的,所以这个问题影响不大,但nextLine()能读取用户输入的整行内容,更通用。
现在编译运行这个代码试试,输入正确的用户名和密码就能看到"Welcome"啦!
内容的提问来源于stack exchange,提问作者Xzavier
相关产品推荐
相关产品推荐

