1. 程式人生 > >java字串判空判等總結

java字串判空判等總結

以下是Java 判斷字串是否為空的四種方法:
方法一: 最多人使用的一個方法, 直觀, 方便, 但效率很低:
if(s == null ||”“.equals(s));
方法二: 比較字串長度, 效率高, 是我知道的最好一個方法:
if(s == null || s.length() <= 0);
方法三: Java SE 6.0 才開始提供的方法, 效率和方法二幾乎相等, 但出於相容性考慮, 推薦使用方法二.
if(s == null || s.isEmpty());
方法四: 這是一種比較直觀,簡便的方法,而且效率也非常的高,與方法二、三的效率差不多:
if (s == null || s == “”);
注意:s == null 是有必要存在的.
如果 String 型別為null, 而去進行 equals(String) 或 length() 等操作會丟擲java.lang.NullPointerException.
並且s==null 的順序必須出現在前面,不然同樣會丟擲java.lang.NullPointerException.
如下Java程式碼:
String str = null;
if(str.equals(“”) || str= == null){//會丟擲異常
System.out.println(“success”);
}
// “”.equals(str);後置確保不會遇null報錯。

Java中字串的判等比較是==比較引用,equals 比較值
so我們經常習慣性的寫上if(str1==str2),這種寫法在java中可能會帶來問題
example1: String a=”abc”;String b=”abc”,
那麼a==b將返回true。因為在java中字串的值是不可改變的,相同的字串在記憶體中只會存 一份,所以a和b指向的是同一個物件;
example2:String a=new String(“abc”); String b=new String(“abc”);
那麼a==b將返回false,此時a和b指向不同的物件。
2、用equals方法比較的是字串的內容是否相同,
example:String a=new String(“abc”);
String b=new String(“abc”); a.equals(b);將返回true。
通常情況下,為了避免出現上述問題,判斷字串是否相等使用equals方法
if(str1.equals(str2) ){
System.out.println(“字串相等”);
}else{
System.out.println(“字串不相等”);
}