gpt4 book ai didi

java - 在java中计算文件中的单词和字符数时出错

转载 作者:行者123 更新时间:2023-11-30 07:18:53 25 4
gpt4 key购买 nike

我编写了以下代码来打印文件内容并打印文件中的字符数和单词数

import java.io.*;
import java.util.*;

class Ass53
{


public static void main(String args[]) throws Exception
{
File file=new File("sample.txt");
Scanner sc=new Scanner(new FileInputStream(file));
String line,line1;
int count1=0;
int count=0;

/*Loop for printing contents of file*/
while(sc.hasNextLine())
{
line=sc.nextLine();
System.out.println(line);
}


/*loop for counting number of character in file*/
while(sc.hasNext())
{
line1=sc.next();
for(int i=1;i<=line1.length();i++)
count1++;
}
System.out.println(count1);


/*loop for counting number of words in a file*/
while(sc.hasNext())
{
sc.next();
count++;
}
System.out.println("Number of words: " + count);


}


}

问题是只有第一个 while 循环正在执行。我猜原因可能是第一个 while 循环的 sc.nextLine。在第一个 while 循环之后 sc 指向什么我猜?。

有什么办法可以解决吗?我希望我的其他 while 循环也能工作

最佳答案

每次你在做nextLine()您正在将扫描仪推进到当前行之后。当第一个循环结束时,您位于文件末尾,没有任何内容可扫描。

解决方案是在每个循环之前重新创建扫描仪。在第二和第三之前重复这个 while :

sc=new Scanner(new FileInputStream(file));

另一个解决方案会涉及更多工作但更优雅:使用单个循环将所有行存储在 List<String> 中, 然后分析所有行以计算单词和字符数。

关于java - 在java中计算文件中的单词和字符数时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15055015/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com