String型別字串判斷非空

自由的刺蝟發表於2016-07-19

         String型別的字串的非空判斷還是經常會用到滴,但是前幾天用的過程中發現了一個問題:假如有一個字元差為str

if(str == null || str.equals(""))  或者  if("".equals(str) || str == null)
        這樣判斷是沒有問題滴,但是我卻這樣寫了:

if(skipMark.equals("") || skipMark == null)

        然後非空判斷就出問題了,後來聽同事簡單說了一下原因,可惜不是太理解 - -!   不過還是先記錄下,以後不能再犯這樣的錯咯。至於具體原因嘛,等哪天我自己弄明白了再補上,如果有人看到正好對此理解透徹的話,還請不吝賜教 ~~~

        //2016-07-22        

        補充下:if(skipMark.equals("") || skipMark == null)這種情況,如果你先判斷equals ,那麼如果前面的那個變數為null, 就會空指標。上面的兩種剛好避免了空指標的情況,所以最好用另外兩種寫法,多謝網友指導


相關文章