Разбор строк в Java - как я могу это сделать? - PullRequest
1 голос
/ 05 декабря 2010

У меня есть следующие данные:

Maths abc10 4 def08 6 ;  
English hrd45 3 ngh05 10 ; .  

Слово в начале - это ключевое слово, которое также входит в перечисление, следующие данные - это имя пользователя и логин (их может быть неограниченное количество.. Данные для каждого ключевого слова заканчиваются на «;», а данные заканчиваются на «.»

Я использую класс сканера, но не могу заставить его зацикливаться, чтобы он мог произвести следующее:

Maths abc10 4   
Maths def08 6   
English hrd45 3  
English ngh05 10

Есть идеи? Спасибо!

Ответы [ 2 ]

3 голосов
/ 05 декабря 2010

Храните все это в Map<String, Map<String, Integer> >.Перебирайте строки, выбирая тему, а затем имя.(Цикл начинается здесь).Проверьте, является ли имя ;, и выйдите, если оно есть.Возьмите счет, затем добавьте его к Map<String, Integer>.Затем возьмите следующее имя.(Цикл заканчивается здесь).Добавьте текущий Map<String, Integer> к большому Map<>, а затем повторите все заново.

1 голос
/ 05 декабря 2010

Вы можете взглянуть на регулярные выражения java.util.regex , если это домашнее задание, вы узнаете и о тех, которые, поверьте мне, не повредят. Для вещей, которые так просты, не стоит идти по пути парсера ИМХО.

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