java - 在Java中计算文本文件中字符的出现次数
问题描述
我对 Java 很陌生,我的第一次课堂作业遇到了一些麻烦。目标是从计算机中读取一个文本文件 (para1.txt) 并计算文件中出现了多少个 a。我目前拥有的代码能够计算每行 a 的数量,但不能计算整个文件中 a 的数量,我不知道如何更改我的代码来解决这个问题。
这是我所拥有的:
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class LetterCounter {
public static void main(String[] args) throws FileNotFoundException {
Scanner input = new Scanner(new File("src/para1.txt"));
while (input.hasNextLine()) {
String answer = input.nextLine();
answer = answer.toLowerCase();
char someChar = 'a';
int count = 0;
for (int i = 0; i < answer.length(); i++) {
if (answer.charAt(i) == someChar) {
count++;
}
}
System.out.println(answer);
System.out.println("a - " + count);
}
}
}
解决方案
count
您在每次迭代中都初始化变量,这是错误的。在外部声明变量while
并检查它是否有效。从您的代码中,它将仅打印最后一行数。请对您的代码进行以下更改:
public class LetterCounter
{
public static void main( String[] args ) throws FileNotFoundException
{
Scanner input = new Scanner( new File( "src/para1.txt" ) );
char someChar = 'a';
int count = 0;
while ( input.hasNextLine() )
{
String answer = input.nextLine();
answer = answer.toLowerCase();
for ( int i = 0; i < answer.length(); i++ )
{
if ( answer.charAt( i ) == someChar )
{
count++;
}
}
System.out.println( answer );
}
System.out.println( "a - " + count );
input.close();
}
}
推荐阅读
- python - 使用 Selenium 刮取 ingramer 时出错
- node.js - 尽管视图初始化,但有时仍显示已删除的项目 - Vue,Node.js
- assembly - 函数序言中的“mov rbp, rsp”
- wordpress - Wordpress 登录只会刷新多个用户管理器插件
- c# - 如何拆分包含方括号和空格的字符串
- android - 如何在单独的线程中分析来自 android Cursor 的数据
- php - Laravel 无法链接共享主机上的存储
- vim - 在 VIM 中抑制着色
- c# - 如何发布来自 Ajax 的数据?
- sql-server - 我可以通过 SqlPackage 和 DacFx 部署不同版本的表吗?