问题来源🔒
当我们在编写关于登陆系统或者需要验证信息的代码时,常常会遇见比较字符串的现象
我们看下面代码,大家能发现问题吗?🤔
当我们运行起来就会发现,就算我们输入“Hello World”时,控制台也会打印输入错误。
上面也是刚接触Java读者容易出错的点,因为String类型也是引用的一种,所以如果我们直接用‘==’比较str1和str2话,其实比较的是他俩所指向的对象。
这也就是我们不管输入什么都不会打印“输入正确”的原因!🤦♂️
解决问题🔓
要想正确比较String类型的话,我们需要用到equals方法
import java.util.Scanner; public class Test { public static void main(String[] args) { Scanner in = new Scanner(System.in); String str1 = "Hello World"; String str2 = in.nextLine(); if(str1.equals(str2)){ System.out.println("输入正确"); }else{ System.out.println("输入错误"); } } }
这样我们就能正确比较String类型啦
🎉更多关于equals方法,可以参考这篇博客 equals() 方法详解😘