结束扫描仪

时间:2015-01-05 15:31:48

标签: java.util.scanner sentence

我一直在研究一个代码,该代码报告输入句子中有关单词的一些统计信息。代码应该是处理输入,直到我按下回车键,但我不能让它迭代一次,我只是继续按Enter键,我的数据不会处理。我认为问题是我设置2个扫描仪的方式。我试图使用两种扫描仪,但我改变的任何东西似乎都没有用。

import java.util.Scanner;

public class SentenceStatistics
{
    public static void main(String [] args)
  {
       Scanner kReader = new Scanner(System.in);


        System.out.print("Enter a sentence: ");
        String input = kReader.nextLine();

        Scanner wReader = new Scanner(System.in);



        int wordCount = 0;
        int sentenceLength = 0;
        int beginPosition = 0;
        int endPosition = input.indexOf(' ');

        while(kReader.hasNext())
        {
             System.out.println(wReader.next());
             wordCount++;
             String word = kReader.next();
             sentenceLength += word.length();            
             beginPosition = endPosition + 1;
             endPosition = input.indexOf(' ', beginPosition);
        }



             System.out.println("word count: " + wordCount);
             System.out.println("Sentence length: " + sentenceLength);
             System.out.println("Average word length: " + sentenceLength / wordCount);


     }


}

这应该是一个简单的问题,但我无法让它发挥作用。

感谢您的帮助, Packerfan504

1 个答案:

答案 0 :(得分:0)

在Java中,只要存在对象的引用,对象就会保持活动状态。在你的情况下,在SentenceStatistics类的对象中总会有对它的引用。