2012-01-06 38 views
3

String.split()生成NullPointerException。String.split()生成NullPointerException

BufferedReader brs = new BufferedReader(new InputStreamReader(System.in)); 
String s1; 
String s2[]; 
s1 = brs.readLine(); 
s2 = s1.split(" "); 
+3

因爲你的'readLine()'返回null。 – Stephan 2012-01-06 13:18:51

+0

@Stephan它不是null。 – 2012-01-06 13:20:17

+2

從您的代碼和拋出的異常中,很明顯s1爲空。這給我們帶來了下一個結論:那brs.readLine();返回null。你應該通過檢查它是否爲空之前,從它調用一個方法。另外,下次提供堆棧跟蹤,以便我們可以檢查出錯的地方。 – 2012-01-06 13:23:23

回答

11

S1可能是null

s1 = brs.readLine(); 
if(s1!=null) 
s2 = s1.split(" "); 
1

如果這條線拋出空指針

s2 = s1.split(" "); 

然後調用編輯分流/ EDIT

注前S1必須爲空

檢查空: BufferedReader.readLine(); 返回: 包含行的內容,不包括任何行終止符,或NULL,如果流的末尾已到達

1

BufferedReader.readLine(字符串)返回null如果結束遇到流。請參閱javadoc。在分割s1之前,您應該先進行空檢查。

2

s1可能爲空。嘗試這個。

if (s1 != null && !s1.trim().equals("")) 
    s2 = s1.split(" "); 
0

您的BufferedReader明確爲空,所以readline()返回null。也許你的輸入流是空的。