2010-12-05 6 views
1

je les données suivantes:.Analyse de chaînes en Java - comment puis-je faire cela?

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

Le mot au début est un mot-clé qui est aussi dans un ENUM, les données suivantes sont le nom d'utilisateur et des paires de connexion (il peut y avoir un nombre illimité de ceux-ci les données « »; pour chaque mot-clé se termine par « » et les données se termine par

J'utilise la classe du scanner, mais je ne peux pas l'obtenir en boucle afin qu'il puisse produire les éléments suivants:

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

Des idées? Merci!

+5

Sonne comme un devoir pour moi. Alors s'il vous plaît nous montrer une partie du code que vous avez déjà. – chzbrgla

+0

Qu'avez-vous essayé? Nous ne sommes pas psychiques; nous ne pouvons pas vous dire ce qui ne va pas avec votre code à moins que nous le voyions. –

+0

Petit indice: 'string.split (séparateur)' plusieurs fois. –

Répondre

3

Stockez le tout dans un Map<String, Map<String, Integer> >. Itérer sur les lignes, en saisissant le sujet et ensuite le nom. (La boucle commence ici). Vérifiez si le nom est ; et quittez si c'est le cas. Prenez le score, puis ajoutez-le à un Map<String, Integer>. Ensuite, prenez le nom suivant. (Boucle se termine ici). Ajoutez l'actuel Map<String, Integer> au grand Map<>, puis recommencez le tout.

1

Vous pourriez jeter un oeil aux expressions régulières java.util.regex, si c'est devoirs vous apprendrez à propos de ceux qui, croyez-moi, cela ne fait pas de mal. Pour des choses aussi simples, ça ne vaut pas la peine de passer par l'analyseur à mon humble avis.