![cfae7b1a9d9181ce0beb118ab37ce76d.png](https://img-blog.csdnimg.cn/img_convert/cfae7b1a9d9181ce0beb118ab37ce76d.png)
Java中字符串比较特殊,它不是基本类型,直接使用 == 进行比较是否相等,大多时候不能达到预期结果,正确的方式是使用.equals()方法进行比较,接下来看代码演示,来理解:Java中如何比较字符串!
// 使用 == 符合预期的情况,原因:指向相同的内存地址 boolean bool = "val" == "val" ; System.out.println(bool); // 输出:true// 使用 == 符合预期的情况,原因:指向相同的内存地址 boolean bool = "val" == "v"+"al" ; System.out.println(bool); // 输出:true// 使用 == 不符合预期的情况,看着相同,但它们并不同,原因:指向不同的内存地址 boolean bool = new String("val") == "val"; System.out.println(bool); // 输出:false // 使用 == 不符合预期的情况,看着相同,但它们并不同,原因:指向不同的内存地址 boolean bool = new String("val") == new String("val") System.out.println(bool); // 输出:false // 这个两值是相同的,原因:比较具体的值,值相同 boolean bool = new String("val").equals("val"); System.out.println(bool); // 输出:true// 其他相同的情况String one = "HELLO";String two = "HELLO";String three = new String("HELLO");String four = "hello";one.equals(two); // true ,原因:比较具体的值,值相同one.equals(three); // true ,原因:比较具体的值,值相同one.equalsIgnoreCase(four); // true ,原因:忽略大小写,比较具体的值,值相同
还不明白的欢迎留言交流!