当这个程序运行时,字符计数器只捕获文本中1498个字符中的1225个字符,这里的任何帮助或指示都会有所帮助,谢谢。
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.PrintWriter;
import java.util.Scanner;
public class WordStats {
public static void main(String[] args) {
String input;
Scanner kbd = new Scanner(System.in);
System.out.print("Enter the name of the input file: ");
input = kbd.nextLine();
try
{
// Set up connection to the input file
Scanner input1 = new Scanner(new FileReader(input));
// Set up connection to an output file
PrintWriter output = new PrintWriter(new FileOutputStream(input + ".txt"));
// initialize the counter for the line numbers
int lineNum = 0;
int words = 0;
int characters = 0;
int paragraphs = 0;
// as long as there are more lines left in the input file
// read from the input file, and copy to the output file
while (input1.hasNextLine())
{
// read a line from the input file
String line;
line = input1.nextLine();
// copy the line to the output file, adding a
// line number at the front of the line
output.println(line + "\n");
// increment the line counter
lineNum++;
//Section for counting the words
boolean word = false;
for (int i = 0; i < line.length(); i++) {
//checks for letters and counts as word till it finds a space then checks for a letter again.
if (!Character.isWhitespace(line.charAt(i)) && !word) {
words++;
word = true;
}
else if (Character.isWhitespace(line.charAt(i)) && word){
word = false;
}
}
for (int i = 0; i < line.length(); i++) {
if(!Character.isWhitespace(line.charAt(i))){
characters++;
}
}
}
// close the files
input1.close();
output.close();
System.out.println("Lines: " + lineNum);
System.out.println("Words: " + words);
System.out.println("Characters: " + characters);
}
catch(FileNotFoundException e)
{
System.out.println("There was an error opening one of the files.");
}
}
}
以下是它正在使用的示例文本:
四年前和七年前,我们的父亲提出了这个问题 大陆,一个新的国家,在自由中孕育,并致力于 所有人都是平等的主张。
现在,我们正在进行一场伟大的内战,并对此进行测试 国家,或任何如此构想和如此奉献的国家,都可以长久存在。 我们遇到了这场战争的伟大战场。我们来了 将这一领域的一部分奉献给那些人,作为最后的休息场所 谁在这里献出了生命,那个国家可能会生活。它是 完全适合我们应该这样做。
但是,从更广泛的意义上说,我们不能奉献 - 我们不能奉献 - 我们不能这么做 - 这个理由。那些在这里挣扎的勇敢的人,无论是活着的还是死去的人,都已经将它奉献给了它,远远超过了我们的穷人 添加或减少。世界将很少注意到,也不会长久记住我们 在这里说,但它永远不会忘记他们在这里做了什么。这是给我们的 生活,而是献身于他们未完成的工作 到目前为止,在这里打过仗的人如此高尚。这对我们来说很重要 在这里致力于摆在我们面前的伟大任务 - 那 从这些荣幸的死者中,我们更加热衷于这一事业 他们给了最后一个充分的奉献精神 - 我们在这里 高度决心,这些死者不会白白死去 - 那 这个国家,在上帝之下,将有一个新的自由诞生 - 那个 人民政府,人民政府,人民政府,不应该 从地球上消失。
亚伯拉罕林肯1863年11月19日