字符串与具体值比较的两个注意

  1. 两个注意
  2. Demo and Analysis
  3. Correct

两个注意

在条件判断中,经常会对字符串的值进行比较。需要注意的有两点:

  1. 使用 equals 方法而不是 ==
  2. 比较前先判断非null。

Demo and Analysis

public static void main(String[] args) {
    String x="he"+"llo";
    String y=null;
    String z= new String("hello");

    System.out.println( x==z ); // false
    System.out.println( x.equals(z) ); //  true
    System.out.println( y.equals(z) ); //  java.lang.NullPointerException
}

由于 == 判断的是内存单元中的内容,而字符串变量在内存中存储的是字符串的引用地址。所以要判断字符串的值,需要使用 equals 方法。虽然 equals 方法也是判断内存单元中的内容,但是在String类中对该方法进行了重写,重写后可以用于比较字符串的值。
如果对象为null,那么比较时会报NullPointerException异常。

Correct

需要先判断是否为空,如果不为空才能进行后续的比较。如果逻辑比较简单,可以使用短路运算符 &&。要是 s1 != null 判断结果为false,也就是s1为null,那么直接返回false,后面不会被执行因此不会报空指针异常。

public static void main(String[] args) {
    String s1 = null;
    if (s1 != null && s1.equals("hello")) {
        System.out.println("hello");
    }
}

他の者にできたか?ここまでやれたか?この先できるか?いいや、仆にしかできない!

目录
×

喜欢就点赞,疼爱就打赏