首页 > 解决方案 > 在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);

        }
    }
}

标签: javacharactertext-files

解决方案


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();
   }
}

推荐阅读