class="java" name="code">public class EqualDemo {
public static void equalByStringInFront(String str){
try{
if(str.equals("")){
System.out.println("字符串变量在前面的调用equal方法,返回true");
}
}catch(NullPointerException e){
e.printStackTrace();
}
}
public static void equalByConstantInFront(String str){
if("".equals(str)){
System.out.println("字符串常量在前面的调用equal方法,返回true");
}else{
System.out.println("字符串常量在前面的调用equal方法,返回false");
}
}
/**
* @param args
*/
public static void main(String[] args) {
String str = "";
String str2 = null;
EqualDemo.equalByStringInFront(str);
EqualDemo.equalByConstantInFront(str);
EqualDemo.equalByStringInFront(str2);
EqualDemo.equalByConstantInFront(str2);
}
}
运行以上代码,输出结果:
字符串变量在前面的调用equal方法,返回true
字符串常量在前面的调用equal方法,返回true
java.lang.NullPointerException
at com.travelsky.equal.frontandback.EqualDemo.equalByStringInFront(EqualDemo.java:7)
at com.travelsky.equal.frontandback.EqualDemo.main(EqualDemo.java:32)
字符串常量在前面的调用equal方法,返回false
当输入的string变量为空的话,string.equal("")方式的调用就会报出空指针异常。所以在进行字符串相等比较的时候,除非两个比较的参数都是变量,否则建议使用“”.equal(string)方法