TextUtils.isEmpty(String)與String.isEmpty()與String==null的區別

關於TextUtils.isEmpty(String)與String.isEmpty()與String==null的區別

首先看源碼

1. TextUtils.isEmpty(String)在httpcore-4.4.11.jar/org/apache/http/util/TextUtils.class

if (TextUtils.isEmpty(search_from)) {

點擊查看源碼,TextUtils.isEmpty(要判斷的字符串) 會對 null 和長度""進行判斷

JSONObject不可以調用此方法,但可以調用isEmpty()方法

package org.apache.http.util;

public final class TextUtils {
    public TextUtils() {
    }

    public static boolean isEmpty(CharSequence s) {
        if (s == null) {
            return true;
        } else {
            return s.length() == 0;
        }
    }

2. if (search_from.isEmpty())  是在src.zip/java/lang/String.java下

String.isEmpty()判斷長度是否爲0,也就是""

public boolean isEmpty() {
    return value.length == 0;
}

3. if (search_from == null) {

null""的區別<br>

問題一:

null""的區別

String s=null;

string.trim()就會拋出爲空的exception  

String s="";  

string.trim()就不會拋,爲什麼?

答:

NULL代表聲明瞭一個空對象,根本就不是一個字符串。  

""代表聲明瞭一個對象實例,這個對象實例的值是一個長度爲0的空字符串。

 

NULL代表聲明瞭一個空對象,對空對象做任何操作都不行的,除了=和==  

""是一個字符串了,只是這個字符串裏面沒有內容了

 

String s=null;只是定義了一個句柄,也就是說你有了個引用,但是這個引用未指向任何內存空間  

String s="";這個引用已經指向了一塊是空字符串的內存空間,是一個實際的東東了,所以你可以對它操作,而不用擔心什麼了

 

你說數字0和沒有是不是一種概念啊??道理一樣的

 

而且,null可以賦值給任何對象.""就不行了.

 

這裏""和NULL絕對是兩個概念  

""代表一個字符串存在,它的值就是“”  

NULL代表字符串根本沒有實際的值,你並不知道它是什麼。。。

 

哦,我明白了,意思就是String   string   =   null   跟String   string;是一回事兒

 

null是空對象     ""是空字符串

String s=null;//null是未分配堆內存空間  

String   a;//分配了一個內存空間,沒存入任何對象  

String   a="";//分配了一個內存空間,存了一個字符串對象


 

 

 if (track_info.containsKey("search_from") && !arg1.matches("xx\\d*.selectbutton_\\d*")) {
            //獲取search_from的value值
            String search_from = track_info.getString("search_from");
            // search_from爲空判斷
            if (TextUtils.isEmpty(search_from)) {
//            if (search_from.isEmpty()) {
                System.err.println(searchFromError + "值爲空");
            } else {
                if (Integer.parseInt(search_from) <= 0 || Integer.parseInt(search_from) > 20) {
                    System.err.println(searchFromError + "值錯誤");
                }
                if (search_from == null) {
                    System.err.println("search_from爲null," + searchFromError);
                }
            }
        }

//            System.out.println(searchFromRight + "正確,校驗通過~~~");

 

 

。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章