Частоты словJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Частоты слов

Сообщение Anonymous »

Я пишу программу на Java, которая вычисляет частоту слов во входных данных. Начальное целое число указывает, сколько слов последует. Вот мой код:

Код: Выделить всё

import java.util.Scanner;
public class LabProgram {
public static void main(String[] args) {

Scanner scnr = new Scanner(System.in);
int numberWords = scnr.nextInt();
String[] wordsList = new String[numberWords];
int i;
int j;
int[] frequency = new int[numberWords];

for (i = 0; i < numberWords; ++i) {
wordsList[i] = scnr.next();
frequency[i] = 0;
for (j = 0; j < numberWords; ++j) {
if (wordsList[i].equals(wordsList[j])) {
frequency[i] = frequency[i] + 1;
}
}
}
for (i = 0; i < numberWords; ++i) {
System.out.print(wordsList[i] + " - " + frequency[i]);
System.out.print("\n");
}

}
}
Когда я ввожу следующее:

Код: Выделить всё

6 pickle test rick Pickle test pickle
Это результат:

Код: Выделить всё

pickle - 1
test - 1
rick - 1
Pickle - 1
test - 2
pickle - 2
Однако это ожидаемый результат:

Код: Выделить всё

pickle - 2
test - 2
rick - 1
Pickle - 1
test - 2
pickle - 2
Похоже, что он подбирает правильные частоты для последующих вхождений, но не для первых.


Подробнее здесь: https://stackoverflow.com/questions/731 ... requencies
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»