У меня есть программа, в которой пользователи могут вводить предложение, и оно может разбивать каждое слово на массив. Кроме того, мне нужно подсчитать частоту каждого слова. Например, Apple - это яблоко - телефон, результатом является то, что Apple-1; это-2; ан-1; а-1; телефон-1.Как подсчитать частоту каждого слова в массиве?
Пожалуйста, помогите мне решить эту проблему, я не знаю, как подсчитать частоту каждого слова.
Вот мой код:
public static void main(String[] args)
{
while (true)
{
System.out.println("Enter a sentence:");
Scanner keyboard = new Scanner(System.in);
String sentence = keyboard.nextLine();
if (sentence.isEmpty()) // quit the program when user enter an empty string
{
break;
}
else
{
StringTokenizer st = new StringTokenizer(sentence);
List<String> sentenceElement = new ArrayList<String>();
while (st.hasMoreTokens())
{
sentenceElement.add(st.nextToken());
}
System.out.println(sentenceElement);
}
}
Спасибо так много !!
Почему вы используете бесконечный цикл? –
, когда пользователь вводит пустую строку, выйдите из программы. – Wei
Этот вопрос следует из [здесь] (http://stackoverflow.com/questions/33200704/use-stringtokenizer-to-count-frequency-of-each-word/33200757#comment54206290_33200757). В этом вопросе есть ответ, который реализует «HashMap». Вы попробовали это? – sam