Lire le texte multiligne avec des valeurs séparées par des espaces
J'ai un fichier de test :
Jon Smith 1980-01-01
Matt Walker 1990-05-12
Quelle est la meilleure façon d'analyser chaque ligne de ce fichier, création d'objet (nom, prénom, date de naissance) ? Bien sûr, c'est juste un exemple, le fichier réel a de nombreux records.
Qu'avez-vous appris? Normalement à l'école, au moins pour moi, c'était la classe scanner. Cela aidera à déterminer ce qui est le mieux pour vous.
J'avais l'intention d'utiliser le scanner, mais il était plus intéressé si StringTokenizer ou StreamTokenizer doit être utilisé.
vous pouvez utiliser le générateur de jetons. Essentiellement numériser la ligne, puis utiliser générateur de jetons avec un espace comme séparateur. StringTokenizer st = new StringTokenizer("ceci est un test"); while (st.hasMoreTokens()) { System..println(st.nextToken()); }
J'avais l'intention d'utiliser le scanner, mais il était plus intéressé si StringTokenizer ou StreamTokenizer doit être utilisé.
vous pouvez utiliser le générateur de jetons. Essentiellement numériser la ligne, puis utiliser générateur de jetons avec un espace comme séparateur. StringTokenizer st = new StringTokenizer("ceci est un test"); while (st.hasMoreTokens()) { System..println(st.nextToken()); }
OriginalL'auteur mastodon | 2010-10-24
Vous devez vous connecter pour publier un commentaire.
question a clairement un 'devoirs' tag...je ne pense pas que vous faites @mastodonte de vie meilleure, en donnant la solution complète.
eep, des excuses pour donner la réponse.
Bien que je vais utiliser la solution de Scanner ce que j'allais auparavant, j'choisissez votre réponse car c'est la plus complète.
Bizarre, ma réponse explique un peu tout sans montrer aucun code (qui je pense qui est probablement la meilleure réponse pour les devoirs à faire à la question). Ah bien, aussi longtemps que vous apprenez quelque chose le long du chemin 🙂
OriginalL'auteur Orbit
Ce:
Pourrait également être changé à
Qui va lire les espaces.
Vous pourriez faire
Faire un séparateur personnalisé
Au moment de la poste, maintenant vous avez trois façons de le faire. Ici, vous avez juste besoin d'analyser les données dont vous avez besoin. Vous avez pu lire le la ligne, puis de diviser ou de les lire un par un et tout 3 une nouvelle ligne ou une nouvelle personne.
OriginalL'auteur Matt
Au premier coup d'œil, je dirais que la StringTokenizer serait votre ami ici, mais ayant une certaine expérience de le faire pour de vrai, dans les applications d'entreprise, ce que vous avez probablement ne peut pas garantir que le Nom de famille est un nom unique (c'est à dire quelqu'un avec une double attribution de nom, pas de trait d'union pourraient vous causer des problèmes.
Si vous pouvez garantir l'intégrité des données lors, vous de code serait
Si vous ne pouvez pas garantir l'intégrité de vos données, alors vous devez trouver le premier espace, et de choisir tous les caractères avant que le nom de famille, trouver le dernier de l'espace et de tous les personnages après que le DOB, et tout entre les deux est le nom de famille.
OriginalL'auteur Codemwnci
Utiliser un FileReader pour la lecture de caractères à partir d'un fichier, utilisez un BufferedReader pour le tamponnage ces caractères de sorte que vous pouvez les lire comme des lignes. Ensuite, vous avez un choix.. Personnellement j'utiliserais Chaîne de caractères.split() à split, sur l'espace en vous donnant un joli Tableau de Chaîne, vous pouvez également marquer cette chaîne.
De sûr, vous devriez penser à ce qui arriverait si quelqu'un a un prénom et un tel.
OriginalL'auteur Lee Jarvis
Regarder
BufferedReader
classe. Il areadLine
méthode. Ensuite, vous pouvez diviser chaque ligne avec un espace séparateurs de construire obtenir chaque champ.OriginalL'auteur kuriouscoder