【Java】String类型正确比较方法

简介: 【Java】String类型正确比较方法

问题来源🔒

当我们在编写关于登陆系统或者需要验证信息的代码时,常常会遇见比较字符串的现象

我们看下面代码,大家能发现问题吗?🤔

当我们运行起来就会发现,就算我们输入“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("输入错误");
        }
    }
}

b8f1adf117673701b1bce6af9e0280c6_6b0171859680405793d5505b0377d138.png

这样我们就能正确比较String类型啦

🎉更多关于equals方法,可以参考这篇博客 equals() 方法详解😘

相关文章
|
2天前
|
Java
深入了解Java中的BigDecimal类及其方法
深入了解Java中的BigDecimal类及其方法
9 1
|
18小时前
|
存储 Java 数据库
解析和使用String数组的方法
解析和使用String数组的方法
|
1天前
|
监控 Java
优化Java应用的日志记录方法
优化Java应用的日志记录方法
|
1天前
|
设计模式 安全 Java
在Java中实现单例模式的正确方法
在Java中实现单例模式的正确方法
|
1天前
|
Java 编译器 索引
解决Java中的NoSuchElementException异常的常见方法
解决Java中的NoSuchElementException异常的常见方法
|
1天前
|
存储 缓存 安全
Java List操作详解及常用方法
Java List操作详解及常用方法
|
2天前
|
存储 安全 Java
JAVA泛型:类型安全,从编译时开始!
【6月更文挑战第28天】Java泛型是JDK 5引入的特性,用于在编译时实现类型安全的集合。它通过类型参数增强代码灵活性和重用性,减少错误。示例展示了泛型列表`List<Integer>`和`List<String>`如何确保元素类型正确,防止编译时类型不符。泛型提升了代码的类型安全、可读性和维护性。
|
2天前
|
安全 Java 编译器
JAVA泛型,编译时类型安全的“秘密武器”
【6月更文挑战第28天】Java泛型是JDK 5引入的特性,用于在编译时增强类型安全和代码复用。它允许类、接口和方法使用类型参数,确保运行时类型匹配,减少了类型转换错误。例如,泛型方法`<T> void printArray(T[] array)`能接受任何类型数组,编译器会检查类型一致性。此外,泛型提升了代码的可读性、可维护性和与容器类的配合效率,优化整体软件质量。
|
7天前
|
Java UED
Java中String强转int:一种常见的错误和解决方法
在Java中将非数字字符串转换为整数会导致`NumberFormatException`。要解决这个问题,可以使用`try-catch`捕获异常,正则表达式验证数字格式,或利用异常信息提供错误提示。例如,`Integer.parseInt()`会因遇到非数字字符如`"123abc"`而抛出异常,但通过异常处理或正则`\\d+`可确保安全转换。记得在编程时避免直接强转,以防止程序异常中断。
|
2天前
|
安全 Java
Java基础之StringBuffer
Java中的`StringBuffer`是线程安全的可变字符串,适用于多线程环境,其方法同步导致较慢。`StringBuilder`在Java 5引入,非线程安全但更快,适合单线程操作。两者均提供append、insert、delete等方法。在不需要线程安全时,选择`StringBuilder`以提升效率。
8 1