2013-05-10 109 views
-4

我嘗試通過將數組放入for循環來獲取我不想從字符串數組獲取的字符串。for循環中的空指針異常

我嘗試下面的代碼,但我得到java.lang.NullPointerException,我不知道爲什麼。

感謝您的幫助。

String unWanted = new String[]{"","a","b","c"}; 

String[] temp = new String[unWanted.length-1]; 
int p = 0; 
for (int k = 0; k < unWanted.length; k++){ 
    if(unWanted[k].equals("") == false) 
    { 
     temp[p] = unWanted[k]; 
     p++; 
    } 
} 
+0

你在哪一行得到NPE? – 2013-05-10 14:07:42

+0

除外String unWanted [] = new String [] {「」,「a」,「b」,「c」};似乎工作 – user1121883 2013-05-10 14:08:57

+0

第一行應該以'String []'而不是'String'開頭。 – 629 2013-05-10 14:09:54

回答

4

temp具有長度爲3,但你在你的環位置4插入值。

+0

*「偶然」*,OP的代碼實際上是插入3個值(空字符串檢查...) – 2013-05-10 14:14:23

+2

@LukasEder,我馬上就知道了,我刪除了我的答案,但是我對此有2個upvotes? LOL – 2013-05-10 14:15:28

+2

人們傾向於同意,而不是認爲...... ;-) – 2013-05-10 14:16:01

5

這裏唯一的錯誤是String數組聲明

String[] unWanted = new String[]{"","a","b","c"}; 
+2

等,可能是一個錯字? – PermGenError 2013-05-10 14:10:32

+4

@PermGenError即使是這樣,代碼也不會產生一個'NPE' – Reimeus 2013-05-10 14:11:22

+3

@rem因此,投票結束不是一個真正的問題:P – PermGenError 2013-05-10 14:12:15

2

首先改變這一行

String unWanted = new String[]{"","a","b","c"}; 

String[] unWanted = new String[]{"","a","b","c"}; 
2

甚至它是不是編譯?

String unWanted = new String[]{"","a","b","c"}; 

變化

String[] unWanted = new String[]{"","a","b","c"}; 

變更後沒有NullPointerException異常console。它工作正常

+0

@Shreyos Adikari感謝編輯。 – 2013-07-09 11:53:35