Подсчет вхождений строк в Java - PullRequest
2 голосов
/ 23 января 2011

Есть ли хороший класс, который может рассчитывать вхождения определенных строк в Java? Я хотел бы сохранить список имен, а затем создать уникальные адреса электронной почты для каждого имени. Для каждого вхождения фамилии я хотел бы увеличить связанный номер на единицу.

Пример: Если у меня есть 3 человека с фамилией Смит, я бы хотел, чтобы их адрес был smith1 @ (Address), smith2 @ (Address) и smith3 @ (Address). Я видел класс «Карта», но не могу правильно его инициализировать. Есть ли класс, который я могу использовать для хранения списка строк и их появлений?

Ответы [ 2 ]

2 голосов
/ 23 января 2011

Карта была бы жизнеспособной структурой данных для этого, если вы просто хотите посчитать количество писем с указанными фамилиями.Ключом будет строка (фамилия), а значением будет целое число (количество вхождений).

Вы создаете его следующим образом:

Map<String, Integer> nameOccurrences = new HashMap<String, Integer>();

Чтобы добавить значение на карту:

nameOccurrences.put("Smith", 1);

Чтобы проверить, есть ли имя на карте:

if (nameOccurrences.containsKey("Smith")) { ... }

Чтобы получить значение из карты:

Integer occurrences = nameOccurrences.get("Smith");

Обратите внимание, что имена с разным использованием заглавных букв будут считаться разными ключами.Если вам нужно игнорировать заглавные буквы, вам нужно сделать что-то вроде сделать ключи заглавными, прежде чем добавлять их на карту.

1 голос
/ 23 января 2011

Сумка - это структура данных, которую вы ищете. Multiset - это реализация Bag из библиотеки google-guava .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...