BufferedReader espace séparé de l'entrée
d'abord je tiens à mentionner que je ne suis pas très expérimenté en java, et j'ai cherché sur StackOverFlow pour une solution à mon problème et je n'ai pas trouvé ou ne l'a pas compris la réponse, donc je vous demande maintenant:
je voulais commencer à travailler avec BufferedReader et n'ai pas trouvé de guide que j'ai compris propely, donc j'ai ramassé les bouts de ici et là et qui a écrit cet exemple :
BufferedReader input = new BufferedReader (new InputStreamReader (System.in));
int x = Integer.parseInt(input.readLine());
String y = input.readLine();
System.out.println(x);
ce code a travaillé pour l'entrée 34
puis entrez ensuite abc
, mais à ce que j'essaie de réaliser j'ai besoin de l'entrée 34 abc
séparés par un espace pour être insérés ensemble et que x
obtiendrez 34
et y
obtiendrez abc
. ce sera le travail lors de l'utilisation du Scanner, mais le problème est de Scanner fois sur l'exercice que je fais parce que c'est lent.
est-il un moyen simple d'obtenir ceux d'entrée séparés par des espaces, comme il a été avec Scanner?
comme je l'ai mentionné, je ne suis pas vraiment bien appris en java et je ne savais pas ce que la méthode de fractionnement est, même si ça n'a pas ralenti à ma situation, sanira m'a donné une solution, y compris StringTokenizer. je n'ai aucune idée de ce que c'est mais il a parfaitement fonctionné, donc suppose que je vais aller avec ça.
C'est intéressant. Parce que si la chaîne.split(" ") n'est pas un travail, mais StringTokenizer est au travail, ce qui signifie que 2 entrées ne sont pas séparés par des espaces, mais par un autre whitecase caractère. StringTokenizer est un peu égal à la chaîne.split("\\s") où \\s désigne toute whitecase caractère
en fait, c'était mon erreur de compréhension de split fonctionne, je usued split (à cause de l'incompréhension du générateur de jetons, qui travaille maintenant trop, mais devinez qui a été le point de l'ensemble, maintenant, je comprends les deux)
OriginalL'auteur shaythan | 2015-06-03
Vous devez vous connecter pour publier un commentaire.
Essayer cela,
c'est plus rapide que chaîne de caractères.split();
ici, docs.oracle.com/javase/7/docs/api/java/util/...
merci. dernière question cependant, comment puis-je passer à la ligne suivante? comme lorsque l'entrée est
23 sdf 35 gtr
j'en ai besoin pour sauter la ligne et obtenir la prochaine entrée de la ligne ci-dessousjuste tk = new StringTokenizer(d'entrée.readLine()); 🙂
ouais, compris, éventuellement, mais jusqu'à ce que j'ai fait j'ai résolu th problème avec la méthode de fractionnement. de toute façon, merci beaucoup!
OriginalL'auteur Sanira
Vous n'étiez pas en mesure d'utiliser
String.split()
fonction de lainput.readLine()
?String line = input.readLine();
int x = Integer.parseInt(line.split(" ")[0]);
OriginalL'auteur Codebender
Divisé en entrée avec
split()
de la fonction et de l'accès à partir de la matrice deOriginalL'auteur Uma Kanth
Vous pouvez lire les multiples entiers dans la même ligne, séparés par des espaces: 1 5 5; à l'aide de l'exemple suivant.
OriginalL'auteur Kasumi Gunasekara
Si vous voulez lire les 2 valeurs de la même ligne, vous ne pouvez pas analyser l'ensemble de la ligne en Entier. Cela donne NumberFormatException.
De lire d'abord la ligne, de la diviser ensuite sur
' '
, et ensuite d'analyser la 1ère partie en Entier.Merci, fixe.
OriginalL'auteur zubergu