lea*_*erX 0 java nullpointerexception
public class url {
public static void main(String[] args) throws Exception {
URL imdb = new URL("http://www.omdbapi.com/?t=The%20incredible%20Hulk");
URLConnection yc = imdb.openConnection();
BufferedReader in = new BufferedReader(new InputStreamReader(
yc.getInputStream()));
String inputLine;
while ((inputLine = in.readLine()) != null)
System.out.println(inputLine);
String[] strarr = inputLine.split(",");
System.out.println("splits.size: " + strarr.length);
in.close();
}
}
Run Code Online (Sandbox Code Playgroud)
错误是:"线程中的异常"主"java.lang.NullPointerException at imdb.url.main(url.java:25)"
请向我解释如何删除它.我使用分割函数和空指针异常搜索了很多,但是我无法理解我做错了什么.
如果从中返回null in.readLine():
while ((inputLine = in.readLine()) != null)
System.out.println(inputLine);
Run Code Online (Sandbox Code Playgroud)
然后循环将退出并inputLine保持为null.
从逻辑上讲,inputLine将永远为空时结束循环,所以在异常必然!
当你的while循环退出时,inputLine为null,因此调用inputLine.split()将始终生成一个NullPointerException.我相信你想要做的是在System.out.println()调用周围放置大括号以及介于两者之间的所有内容,以便它们都包含在循环迭代中:
while ((inputLine = in.readLine()) != null)
{
System.out.println(inputLine);
String[] strarr = inputLine.split(",");
System.out.println("splits.size: " + strarr.length);
}
Run Code Online (Sandbox Code Playgroud)
这是否有预期的效果?
| 归档时间: |
|
| 查看次数: |
3631 次 |
| 最近记录: |