Подсчет вхождения символов в текстовом файле на Java - PullRequest
0 голосов
/ 01 февраля 2019

Я очень плохо знаком с Java, и у меня возникли небольшие проблемы с моим первым заданием для класса.Цель состоит в том, чтобы прочитать текстовый файл с компьютера (para1.txt) и подсчитать, сколько в нем появляется.Код, который у меня есть в настоящее время, способен рассчитывать количество символов 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);

        }
    }
}

Ответы [ 2 ]

0 голосов
/ 01 февраля 2019

Ваш счет должен быть определен вне цикла над строками:

int count = 0;
char someChar = 'a';

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);
0 голосов
/ 01 февраля 2019

Вы инициализируете переменную 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();
   }
}
...