Java 中關於String 對象的空對象(null), 空值(""),空格(" ")

分類:編程 時間:2016-11-07
[摘要:Java 中閉於String 工具的空工具(null), 空值(""),空格(" ")對良多人來講很隱約,上面將分離先容一下他們的用法:界說,判別,運算。 起首,先上代碼: ]

Java 中關於String 對象的空對象(null), 空值(""),空格(" ")對於很多人來說很模糊,下面將分別介紹一下他們的用法:定義,判斷,運算。

首先,先上代碼:

[java] view plain copy
  1. private void testStringNullOrEmpty() {  
  2.   
  3.         // 如果s=null代表空對象,即還沒創建出對象,就是還沒開辟空間,。  
  4.         // 如果s = ""表示創建出了對象,但是這個對象內容為空,也就是空字符串。  
  5.         // 如果s = " "表示創建出了對象,但是這個對象內容為不為空,而是空格。  
  6.   
  7.         String s = null;  
  8.         String k = "";  
  9.         String n = " ";  
  10.         String t = "ab";  
  11.   
  12.         Log.d(TAG, "s = " + s);                    //output : s = null  
  13.         Log.d(TAG, "k = " + k);                    //output : k =   
  14.         Log.d(TAG, "t = " + t);                    //output : t = ab  
  15.         Log.d(TAG, "n = " + n);                    //output : n =   
  16.         Log.d(TAG, "t.length() = " + t.length());  //output : t.length() = 2  
  17.         Log.d(TAG, "k.length() = " + k.length());  //output : k.length() = 0  
  18.         Log.d(TAG, "n.length() = " + n.length());  //output : n.length() = 1  
  19.   
  20.         //equals方法比較的是兩個對象的內容是否相同,因此,對象必須有指向的空間,即不能為null,否則,會拋出異常。  
  21.         Log.d(TAG, "k.equals(null) = " + k.equals(null));  //output : k.equals(null) = false  
  22.         Log.d(TAG, "k.equals(\"\") = " + k.equals(""));     //output : k.equals("") = true  
  23.         Log.d(TAG, "k.equals(\" \") = " + k.equals(" "));   //output : k.equals(" ") = false  
  24.         Log.d(TAG, "n.equals(\"\") = " + n.equals(""));     //output : n.equals("") = false  
  25.         Log.d(TAG, "n.equals(\" \") = " + n.equals(" "));   //output : n.equals(" ") = true  
  26.         // Log.d(TAG, "s.equals(null) = " + s.equals(null)); //異常  
  27.         Log.d(TAG, "k.isEmpty() = " + k.isEmpty());         //output : k.isEmpty() = true  
  28.         Log.d(TAG, "n.isEmpty() = " + n.isEmpty());         //output : n.isEmpty() = false  
  29.         // Log.d(TAG, "s.isEmpty() = " + s.isEmpty());      //異常  
  30.   
  31.         Log.d(TAG, "s == null = " + (s == null));          //output : s == null = true  
  32.   
  33.         // 在使用"+"操作符時,如果有一個操作數是字符串,其他操作數會被轉換成字符串  
  34.         s = s + t;  
  35.         Log.d(TAG, "after (s + t) s = " + s);                //output : after (s + t) s = nullab  
  36.         Log.d(TAG, "s.length() = " + s.length());            //output : s.length() = 6  
  37.         Log.d(TAG, "s == null = " + (s == null));           //output : s == null = false  
  38.   
  39.     }  

定義


空對象:

String s = null; 

空對象是指定義一個對象s,但是沒有給該對象分配空間,即沒有實例化該對象,因此,空對象在調用所有對象方法時候都會拋出異常,如s.length(), s.isEmpty()等方法。

空值:

String k = "";
空值是指一個字符床對象已經實例化,即系統已經給該變量分配了空間,只是對象的內容為空。

空格:

String n = " ";

是指一個字符對象已經實例化,對象的內容為空格。


判斷

對於上述三種情況,如何判斷一個字符變量屬於上述類型,下面主要介紹下方法:

空對象判斷:

判斷一個字符變量是否是null ,使用 邏輯判斷 等於(==)與null對象比較,代碼表達式如下:
s == null; 

註意: 空對象不能使用諸如equals(), isEmpty()等對象方法,因為它未被實例化。

空值判斷:


判斷空值可有三種方式:     (1)equals方法比較的是兩個對象的內容是否相同,可用表達語句:k.equals("") ;

      (2)  length()方法是查看某個字符串對象的字符個數,可用表達式判斷:k.length() == 0 ;

      (3)  isEmpty()方法是判斷某個字符串對象字符個數時候為0,可用表達式判斷:k.isEmpty() ;


空格判斷:

空格內容為一個空格,雖然在輸出顯示時候和空值一樣,都是空的,但是在系統裏面的內存機制不一樣的,空格字符串表示該對象的內存空間裏面有內容,是空格,字符個數是1,因此,在使用如下方法時候結果如下:

n.length() 的輸出值為1, n.isEmpty()輸出為false。

判斷語句: n.equals(" ") ;

 

運算

字符串提供了"+"操作符,表示兩個字符串對象可以鏈接一起,在使用該運算時候,有這樣一條規則:如果有一個操作數是字符串,其他操作數會被轉換成字符串。


在上面代碼s = s + t; s申明時候為空對象,通過"+"時,會將null轉化為一個字符串對象。因此結果是nullab。


大家可以對照上面代碼例子,更加詳細的了解這三者實現機制。


Tags:

文章來源:


ads
ads

相關文章
ads

相關文章

ad