Просто хотел бы сказать, что эта программа побеждала меня почти во всех отношениях. Что мне нужно сделать, это ввести .txt файл, который содержит этотПодсчет слов в текстовом файле?
Там должно быть 59 символов 13 слов и 6 линий в этом файле.
Не знаете, как отформатировать это до 6 строк.
Программа подсчитывает строки, но говорит, что есть 78 слов в текстовом файле, а не 13. Что является 6 * 13 = 78.
Как я могу получить его только читать строку один раз .. поэтому чтение 13 слов не 13 * 6. Программа, кажется, считает слова, которые много раз. (комментарии вводятся руководством для профессионалов).
package inputoutput;
import java.util.*;
import java.io.*;
public class input {
public static void main(String[] args) throws FileNotFoundException {
Scanner s = new Scanner(System.in);
String name;
int lineCount = 0;
int wordCount = 0;
System.out.println("Please type the file you want to read in: ");
name = s.nextLine();
// create a Scanner object to read the actual text file
File input = new File("C:\\Users\\Ceri\\workspace1\\inputoutput\\src\\inputoutput\\" + name + ".txt");
Scanner in = new Scanner(input);
while (in.hasNextLine()){ // enter while loop if there is a complete line available
// increase line counter variable
lineCount++;
// read in next line using Scanner object, inFile
in.nextLine();
// create another Scanner object in order to scan the line word by word
Scanner word = new Scanner(input);
// use while loop to scan individual words, increase word counter
while(word.hasNext()){
// increase word counter
wordCount++;
// Scanner move to next word
word.next();
}
word.close();
// count number of chars including space but not line break by using the length() method of the String class and increment character counter
}
in.close();
System.out.print("Lines " + lineCount + " "+ "Words " + wordCount);
}
Думаю, использование двух сканеров для 'input' создает проблему. Вы можете сделать это: взять. Строка oneline = in.nextLine. Используйте сканер на этом слове таким же образом. – frunkad
Вам нужно переместить сканер слов за пределы цикла while для линейного сканера. Поскольку у вас есть это прямо сейчас, вы объявляете сканер слов и просматриваете весь файл для каждой строки в файле. – mstbaum
@mstbaum ты мой спаситель. Я хотел окропить мои волосы, делая это. –