[英]Counting the number of characters in a file
我正在写一个程序,要求程序打印文件中有多少个字符(包括空格)。 我现在拥有的代码虽然每次都会返回0,但我不确定为什么它不计算字符。
public int getcharCount(Scanner textFile) {
int count = 0;
while(textFile.hasNext()) {
String line = textFile.nextLine();
for(int i=0; i < line.length(); i++)
count++;
}
return count;
}
编辑:我的程序的规范说,我应该使用扫描仪。 我不确定它是否会进入for循环,尽管我不确定。 当我使用相同的技术来计算文件中的行数时,它可以完美地工作。 该代码是:
public int getLineCount(Scanner textFile) {
int lineCount = 0;
while(textFile.hasNext()) {
String line = textFile.nextLine();
lineCount++;
}
return lineCount;
}
而且我们不需要检查该行是否包含任何东西。 如果它出现在文本文件的中间,则应视为一个字符。
我不知道为什么它不起作用(并且下面的代码不能解决它),但是
for(int i=0; i < line.length(); i++)
count++;
可以写得更简洁
count += line.length();
为什么要使用扫描仪? 一个简单的阅读器就足够了。 如果您坚持使用扫描仪,则必须了解它将输入分为由某些模式(默认为空格)分隔的字段,也许可以设置一个空模式以使字段与字符相对应(但是同样,过于矫kill过正,只需使用Reader)
在传递给getcharCount()
之前,您是否已经从扫描器中读取了所有内容?
您需要分配文件,将其打开,然后重置为开头。 你什么都不显示。
您为扫描仪设置了什么定界符? 您无需在代码中显示它,但需要使它将一行视为单个标记。
scanner.useDelimiter("\n");
另外,您说第二个代码示例运行良好。 您是否打印了line的值以验证其中是否包含任何内容? 它可能已经正确地计算了行数,但是如果行实际上不包含任何内容,那么这将有助于解释为什么它不进入for循环。
我与Scanner的合作不多,但不会
textFile.hasNextline();
比
textFile.hasNext();
只是一个想法-我不确定这是否会对执行产生重大影响
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.