"Счетчик букв файла:
Напишите программу, которая просит пользователя ввести имя файл, а затем просит пользователя ввести символ. Программа должна подсчитать и отобразить количество раз, когда указанный символ появляется в файле. С помощью Блокнота или другого текстового редактора создайте образец файла, который можно использовать для проверки.
Текстовый файл, который мой профессор предоставил нам для тестирования этой программы, содержит 1307 строк случайных букв, которые эта программа должна пройти и По какой-то причине я не могу заставить эту программу работать правильно. Я пробовал использовать что-то помимо того, что мы уже узнали на уроке и в книге, но я совершенно запутался.
Пример ввода:
Код: Выделить всё
f
d
s
h
j
Код: Выделить всё
package filelettercounter;
import java.util.Scanner;
import java.io.*;
public class FileLetterCounter {
public static void main(String[] args) throws IOException {
Scanner keyboard = new Scanner(System.in);
System.out.print("Enter the file name: ");
String filename = keyboard.nextLine();
File file = new File(filename);
Scanner inputFile = new Scanner(file);
do {
int counter = 0;
String line = inputFile.nextLine();
System.out.print("Enter a character: ");
String character = inputFile.nextLine();
if(line.contains(character)) {
counter++;
}
System.out.println("The character " + character + " appears " +
counter + " times in the file.");
}while(inputFile.hasNext());
inputFile.close();
}
}
Код: Выделить всё
Enter a character: The character f appears 0 times in the file.
Enter a character: The character d appears 0 times in the file.
Enter a character: The character s appears 0 times in the file.
Enter a character: The character h appears 0 times in the file.
Enter a character: The character j appears 0 times in the file.
Код: Выделить всё
Exception in thread "main" java.util.NoSuchElementException: No line found
at java.base/java.util.Scanner.nextLine(Scanner.java:1660)
at filelettercounter.FileLetterCounter.main(FileLetterCounter.java:31)
Код: Выделить всё
Enter the file name: "filename"
Enter a character: "character"
The character (character) appears (number of times) times in the file.
Подробнее здесь: https://stackoverflow.com/questions/790 ... -file-in-j
Мобильная версия