无法从此字母计数器

时间:2017-04-18 19:19:29

标签: java string

当这个程序运行时,字符计数器只捕获文本中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日

0 个答案:

没有答案