在与声明的位置不同的位置初始化的字符串

时间:2014-10-11 02:28:17

标签: java string

我正在尝试从网页上读取标题并将其另存为字符串。但是,由于字符串在java中是不可变的,我不能只将它设置为null并在需要时更改它。因此,我在strTitle可能尚未初始化的最后一行的下一行收到错误。这似乎应该很容易处理,但我无法弄清楚。提前致谢。

  URL allRecipe = new URL(inputLine); //user defined url
    BufferedReader urlIn = new BufferedReader(
        new InputStreamReader(allRecipe.openStream()));

  String inputFromWeb;

  //loops through webpage and finds title 
  while((inputFromWeb = urlIn.readLine()) != null){
    //getting title
    if(inputFromWeb.contains("<title>")){
        strTitle = urlIn.readLine();
    }

  }//end while
  urlIn.close();

  //print out title
  System.out.println("Title:");
  System.out.println(strTitle); //this line returns the error
  System.out.println("\n");

1 个答案:

答案 0 :(得分:1)

  

因为字符串在java中是不可变的,我不能只将它设置为null   并在需要时更改它。

当然可以。如果要将String引用初始化为null,然后为其分配不同的String,则不会更改任何String,只是更改String引用。

  

但是,我在下一个到最后一行时遇到错误   strTitle可能尚未初始化。

String strTitle = null;

将解决您的问题。