java字元串為空
A. java 字元串為null 如何判斷
定義 String str;
判斷字元串是否空涉及兩個層次:
1、是首先判斷字元串變數的引用是否為空,即空對象的概念,用null來判斷,可以用if(str==null) 判斷 str是否為空;(注意不能用equals(null),在參數為null情況下,返回值永遠是false);
2、是在不為空對象的情況下,在判斷字元串對象是否為空串,即長度為0.用length()==0。 關鍵是搞清楚字元串對象為空和空字元串有區別。
拓展內容
Java空字元串與null的區別:
1、類型
null表示的是一個對象的值,而並不是一個字元串。例如聲明一個對象的引用,String a = null ;
""表示的是一個空字元串,也就是說它的長度為0。例如聲明一個字元串String str = "" ;
2、內存分配
String str = null ; 表示聲明一個字元串對象的引用,但指向為null,也就是說還沒有指向任何的內存空間;
String str = ""; 表示聲明一個字元串類型的引用,其值為""空字元串,這個str引用指向的是空字元串的內存空間;
在java中變數和引用變數是存在棧中(stack),而對象(new產生的)都是存放在堆中(heap)。
如下:
String str = new String("abc") ;
B. java字元串為空的問題
①「「.equals(str)這個是獲取到str的值,和""比較,純粹的值得比較 如果Str 是「aa」,那麼自然不等於
②」null「.equals(str)就是用一個值為null的字元串和str 的值做比較!
③str==null,str 本身引用對象是否是null ,str沒有初始化時那麼就是一個null 對象
C. java中做字元串非空判斷,為什麼要同時判斷字元串不為null和不等於空串
對於null而言。如果一個字元串為null,例如String a = null; 那麼此時,調用字元串對象a的方法,例如a.length(); 就會報空指針異常,即NullPointerException。如果這個異常沒有被catch住的話,a.length();後面的代碼就都不會被執行了。同時,如果這個程序是伺服器程序,那麼還會出現500這種屬於比較嚴重的問題。所以,在使用字元串對象前要先判斷一下其不為null。
不等於空串這個就是根據具體業務而定了,空串也就是字元串長度為0。那麼這種字元串在很多時候是沒什麼意義的。如果一個字元串是空串,那麼就可以不執行後面的業務邏輯了(視具體業務而定)。所以這種情況也需要判斷。