我一直在研究一个代码,该代码报告输入句子中有关单词的一些统计信息。代码应该是处理输入,直到我按下回车键,但我不能让它迭代一次,我只是继续按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
答案 0 :(得分:0)
在Java中,只要存在对象的引用,对象就会保持活动状态。在你的情况下,在SentenceStatistics类的对象中总会有对它的引用。