String.split()生成NullPointerException。String.split()生成NullPointerException
BufferedReader brs = new BufferedReader(new InputStreamReader(System.in));
String s1;
String s2[];
s1 = brs.readLine();
s2 = s1.split(" ");
String.split()生成NullPointerException。String.split()生成NullPointerException
BufferedReader brs = new BufferedReader(new InputStreamReader(System.in));
String s1;
String s2[];
s1 = brs.readLine();
s2 = s1.split(" ");
S1可能是null
,
s1 = brs.readLine();
if(s1!=null)
s2 = s1.split(" ");
你檢查什麼是從brs.readLine()
到來。這就是null
-值來源於的地方。也許該文件是空的:http://docs.oracle.com/javase/7/docs/api/java/io/BufferedReader.html#readLine%28%29
如果這條線拋出空指針
s2 = s1.split(" ");
然後調用編輯分流/ EDIT
注前S1必須爲空
檢查空: BufferedReader.readLine(); 返回: 包含行的內容,不包括任何行終止符,或NULL,如果流的末尾已到達
BufferedReader.readLine(字符串)返回null如果結束遇到流。請參閱javadoc。在分割s1之前,您應該先進行空檢查。
s1可能爲空。嘗試這個。
if (s1 != null && !s1.trim().equals(""))
s2 = s1.split(" ");
您的BufferedReader明確爲空,所以readline()返回null。也許你的輸入流是空的。
因爲你的'readLine()'返回null。 – Stephan 2012-01-06 13:18:51
@Stephan它不是null。 – 2012-01-06 13:20:17
從您的代碼和拋出的異常中,很明顯s1爲空。這給我們帶來了下一個結論:那brs.readLine();返回null。你應該通過檢查它是否爲空之前,從它調用一個方法。另外,下次提供堆棧跟蹤,以便我們可以檢查出錯的地方。 – 2012-01-06 13:23:23