String的非空判斷:str!=""的為空判斷出錯問題


if(str!=null && str!= ""){
}
這是錯誤的判斷
String str1 = "";
        String str2 = new String("");
        if (str1 != null && str1 != "") {
            System.out.println("str1賦值的空");
        }
        if (str2 != null && str2 != "") {
            System.out.println("str2賦值的空");
        }
        System.out.println("over");

        // 正確的判斷
        if (str1 != null && str1.length() > 0) {
            System.out.println("str1.length賦值的空");
        }
        if (str2 != null && str2.length() > 0) {
            System.out.println("str2.length賦值的空");
        }
        System.out.println("over.length");

結果:

str2賦值的空
over
over.length

Process finished with exit code 0

原因就是str1是常量儲存,而str2是堆內儲存,兩者對象不同,所有會有漏判現象,一個容易忽略的錯誤。

 
         
         
       


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM