尝试在字符串中搜索单词时出错(Java)

时间:2015-02-08 23:53:45

标签: java nullpointerexception

package wordfinderurl;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import javax.swing.JOptionPane;
public class Wordfinderurl {
    public static void main(String[] args) throws Exception {
        // connect to website and output html to a string
   URL leagueoflegends = new URL("http://www.google.com");
    BufferedReader in = new BufferedReader(
    new InputStreamReader(leagueoflegends.openStream()));
    String inputLine;
    while ((inputLine = in.readLine()) != null)
        System.out.println(inputLine);
    in.close();
    // search the word "new" in the String inputLine 
    if(inputLine.contains("new")){
    JOptionPane.showMessageDialog(null, "word found");
   }else{
   JOptionPane.showMessageDialog(null, "word not found");
}

}
}

我正在尝试创建一个从网站读取html并将其放入字符串的程序。然后我想用网站上的html搜索String中的单词。当我执行程序时,我收到错误。

线程“main”java.lang.NullPointerException中的异常     在wordfinderurl.Wordfinderurl.main(Wordfinderurl.java:19)

感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

第19行抛出异常。我假设它是这一行:

    if(inputLine.contains("new")) ...

在此设置inputLinereadLine,直至null

    while ((inputLine = in.readLine()) != null)

因此,您得到NullPointerException

简单但丑陋的解决方法可能是(我很累,所以原谅任何错误):

String inputLine;
String tmp;
while ((tmp = in.readLine()) != null)
    inputLine = tmp;
    System.out.println(inputLine);
in.close();
// search the word "new" in the String inputLine 
if(inputLine.contains("new")){

我确信其他人有更好的方法来治疗它。