无法找出文件中的句子数

时间:2015-01-17 18:08:48

标签: java file

我正在编写一个代码来查找文件中的句子数。 我的代码如下:

 try{
    int count =0;

FileInputStream f1i = new FileInputStream(s);
Scanner sc = new Scanner(f1i);
    while(sc.hasNextLine()){
        String g = sc.nextLine();
 if(g.indexOf(".")!= -1)
     count++;
 sc.nextLine();

}
System.out.println("The number of sentences are :"+count);
}
catch(Exception e) {
        System.out.println(e);
        }

我想我的逻辑检查周期数是正确的。我写了上面的代码,我认为是正确的,但它显示javautilNoElementfound : No line found异常。我尝试了一些其他逻辑,但这个是最好理解的。但我被困在这里。我在那个例外上使用谷歌,它说当我们迭代没有元素的东西时会抛出它。但是我的文件包含数据。这个例外是否有某种方式可以让路?还是有其他错误?提示非常感谢!谢谢

1 个答案:

答案 0 :(得分:2)

您在sc.nextLine()循环内调用while两次,这就是错误发生的原因。 此外,当同一行上有2个句子时,您的逻辑并不能解释这种情况。 你可以尝试这样的事情: int sentencesPerLine = g.split(".").length;

循环应该是:

while(sc.hasNextLine()){
    String g = sc.nextLine();
    if(g.indexOf('.')!= -1){//check if the line contains a '.' character
        count += g.split("\\.").length; // split the line into an array of Strings using '.' as a delimiter
    }
}

split(...)方法中,我使用"\\."代替".",因为.是一个正则表达式元素,需要进行转义。