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