lecture d'une ligne délimitée par les deux virgule et un espace - java
Je suis prêt à lire une série de nombre à partir d'une ligne comme ci-dessous en Java:
1 80,982 163,8164 170,2620
Donc finalement, je veux le résultat de la matrice de [1, 80, 982, 163, 8164, 170, 2620]
Je pense à propos de l'utilisation du scanner, mais pas évident à mettre en œuvre dans une manière simple, puis-je demander quelques conseils s'il vous plaît?
Merci pour la lecture!
Stringtokenizer ?
non, cette classe n'en est rien, mais l'héritage est découragée dans le nouveau code. docs.oracle.com/javase/7/docs/api/java/util/...
en regardant les premières source de votre question, il semble que votre ligne contient également de l'onglet (
split utilise une regex.
non, cette classe n'en est rien, mais l'héritage est découragée dans le nouveau code. docs.oracle.com/javase/7/docs/api/java/util/...
en regardant les premières source de votre question, il semble que votre ligne contient également de l'onglet (
'\t'
) caractères. assurez-vous d'inclure cette information dans votre question, il est important pour l'exactitude des réponses que vous recevez.split utilise une regex.
String.split("(\s*|,)")
ou quelque chose à faire.OriginalL'auteur Bpache | 2013-03-12
Vous devez vous connecter pour publier un commentaire.
Oui le Scanner classe fonctionne bien avec cela.
Il fonctionne particulièrement bien si vous êtes en train de lire à partir d'un fichier. (Réduit le travail pour vous.)
OriginalL'auteur ktm5124
Si c'était moi, j'avais lu une seule ligne à l'aide de
BufferedReader
et puis il suffit d'utiliserJ'ai l'habitude de trouver
Scanner
fouillis et overkill.Le
[]
représente un caractère de classe, et dans ce cas l'expression rationnelle peut être lu comme "un personnage dans le jeu{<comma>, <space>}
". Ainsi, il devrait fonctionner parfaitement bien.Je le vois maintenant. Merci.
Ouais je voudrais aller avec ce sur votre Scanner si c'est juste une ligne 🙂
Je accepter cette réponse depuis moins de frais généraux. Je suppose que l'OP est l'aide de l'entrée standard. Merci
OriginalL'auteur Mark Peters
Scanner est bien, juste ce que le séparateur de modèle, voir cette.
OriginalL'auteur rdcrng
essayez ceci:
OriginalL'auteur Achintya Jha
Puisque vous voulez String[] la meilleure solution est de la Chaîne.split
OriginalL'auteur Evgeniy Dorofeev
Diviser votre chaîne avec ci-dessous regex.
Je correspond à des critères suivants.
(,|\\s)
. Si vous avez plus qu'un séparateur que vous pouvez inclure dans le support comme(&|,|@|\\s)
.Vérifier le violon ici.
Programme Java
OriginalL'auteur Rais Alam
OriginalL'auteur Sanath
Pour un simple fichier d'entrée avec certains des virgules, des espaces, des virgules et des espaces, puis regex de Rais et de Evgeniy les deux travaillé avec split. Dans ce dernier cas, le signe + est critique. Aucune des autres options travaillé pour ces données:
1.0 2.0 3.0 4.0
5.0,6.0 7.0 8.0
9.0 10.0, 11.0 12.0
OriginalL'auteur MantaMan