1
String line = in.readLine();

String document = "";

while (line != null)
{
    document +=line;
    line = in.readLine();
}
String words[] = line.split(".");

for(int i = 0; i < words.length;i++)
{
    System.out.println(words[i]);
}

我想document在点的基础上拆分我的。

我尝试使用上面的代码,但它正在抛出NullPointerException

words[] = line.split(".");

谢谢你帮助我。

4

4 回答 4

2

您的声明:

String words[] = line.split(".");

... 本质上访问一个null对象 ( line),因为您已经退出了迭代 until is not的while循环。linenull

此外,该String.split方法采用正则表达式,因此“。” 不会,因为它是任何字符的正则表达式通配符。

修复 NPE 后,尝试像这样拆分行(转义点):

String words[] = line.split("\\.");
于 2013-08-01T12:13:47.913 回答
1

以下陈述

    String words[] = line.split(".");
    for(int i = 0; i < words.length;i++)
    {

          System.out.println(words[i]);

    }

应该在while循环内

    while (line != null)
    {
          document +=line;
          String words[] = line.split(".");
          for(int i = 0; i < words.length;i++)
         {

            System.out.println(words[i]);

         }
         line = in.readLine(); // after the splitting, read next line
    }
于 2013-08-01T12:12:57.987 回答
1

当您的代码达到:

String words[] = line.split(".");

它总是会抛出 NullPointerException,因为它line总是为 null。

于 2013-08-01T12:13:15.177 回答
0

你应该使用

words[] = line.split("\\.");
于 2013-08-01T12:34:35.903 回答