结束扫描器

Ending a Scanner

我一直在研究一个代码,它可以报告有关输入句子中单词的一些统计信息。代码应该处理输入,直到我按下回车键,但我无法让它迭代一次,我只是一直按回车键,我的数据不会处理。我认为问题出在我设置 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

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