Voici mon code:
public static void main(String[] args) { Scanner in = new Scanner(System.in); String question; question = in.next(); if (question.equalsIgnoreCase("howdoyoulikeschool?") ) /* it seems strings do not allow for spaces */ System.out.println("CLOSED!!"); else System.out.println("Que?");
5 Réponses :
in.Next () code> retournera des chaînes délimitées d'espace. Utilisez
in.Nextline () code> si vous voulez lire la ligne entière. Après avoir lu la chaîne, utilisez
question = question.replaceall ("\\ s", "") code> pour supprimer les espaces. P>
Merci! In.NextLine () était exactement ce que je cherchais. Par curiosité, pourquoi voudrais-je supprimer les espaces?
@ user1687777 C'est un peu vieux maintenant, mais je pense que Osiris a ajouté que depuis dans votre code, vous comparez contre Howdoyoulikeschool? Code> - Pas d'espaces.
Dans le même cas de scanner. L'INPUT.NEXLINE () ne fonctionne pas si je donne les valeurs d'entrée comme 10, 4.0, testez bien le code. Après avoir obtenu la valeur d'entrée et la double valeur, je peux obtenir le premier mot de la phrase que j'ai donné à l'aide de INPUT.NEXT () mais lorsque j'essaie avec Input.NextLine (). ça ne marche pas. Une autre chose que si vous donnez la saisie de la phrase d'entrée en premier à cette époque, je peux obtenir les phrases complètes à l'aide de Input.NextLine (). Quelqu'un a-t-il rencontré des cas comme celui-ci ???
au lieu de type dans p> ceci doit pouvoir prendre des espaces en entrée. P> P> P> P> P> P> >
Il s'agit d'un exemple de mise en œuvre de la saisie de la saisie de Java, j'ai ajouté une certaine tolérance de défaut sur le champ de salaire pour montrer comment cela se fait. Si vous remarquez, vous devez également fermer le flux d'entrée .. Profitez :-)
/* AUTHOR: MIKEQ * DATE: 04/29/2016 * DESCRIPTION: Take input with Java using Scanner Class, Wow, stunningly fun. :-) * Added example of error check on salary input. * TESTED: Eclipse Java EE IDE for Web Developers. Version: Mars.2 Release (4.5.2) */ import java.util.Scanner; public class userInputVersion1 { public static void main(String[] args) { System.out.println("** Taking in User input **"); Scanner input = new Scanner(System.in); System.out.println("Please enter your name : "); String s = input.nextLine(); // getting a String value (full line) //String s = input.next(); // getting a String value (issues with spaces in line) System.out.println("Please enter your age : "); int i = input.nextInt(); // getting an integer // version with Fault Tolerance: System.out.println("Please enter your salary : "); while (!input.hasNextDouble()) { System.out.println("Invalid input\n Type the double-type number:"); input.next(); } double d = input.nextDouble(); // need to check the data type? System.out.printf("\nName %s" + "\nAge: %d" + "\nSalary: %f\n", s, i, d); // close the scanner System.out.println("Closing Scanner..."); input.close(); System.out.println("Scanner Closed."); } }
Comme il est long et que les gens continuent à suggérer d'utiliser < un href = "https://docs.oracle.com/javase/7/docs/api/java/util/scanner.html" rel = "NOFOOLER NOREFERRER"> Scanner de classe P> Un scanner brise son entrée en jetons à l'aide d'un motif de délimitation, qui correspond par défaut correspond à WhitSpace. P>
blockQuote> Vous pouvez utiliser scanner # nextline () code>, il y a une autre chance que code> scanner code> puisse prendre des espaces inclus dans l'entrée.
scanner # adversaire () code> pour modifier le délimiteur de
scanner code> à un autre motif tel qu'un flux de ligne code> ou quelque chose d'autre. p>
J'ai trouvé une chose très étrange dans Java aujourd'hui, donc ça va comme -
Si vous entrez plus d'une chose de l'utilisateur fort>, disons p> Donc, on pourrait ressembler si nous exécutons ce programme, il demandera ces 3 entrées et dire que nos valeurs d'entrée sont de 10, 2,5, "Bienvenue à Java"
Le programme doit imprimer ces 3 valeurs tel qu'il est, comme nous l'avons utilisé NextLiche () afin de ne pas ignorer le texte après les espaces que nous avons entrés dans notre variable Mais, la sortie que vous obtiendrez est - p> et c'est tout, il n'abotte même pas l'entrée de la chaîne.
Maintenant, je lisais à ce sujet et d'être très honnête, il y a encore des lacunes dans ma compréhension, tout ce que je pouvais comprendre était après avoir pris l'entrée INT, puis la double entrée lorsque nous appuyez sur Entrée, il considère que comme l'invite et ignore le nextline (). p> modifie donc mon code à quelque chose comme ça - p> est parfaitement lié à quelque chose comme "\ n "Étant stocké dans le tampon de clavier dans l'exemple précédent que nous pouvons contourner en utilisant ceci. P> S'il vous plaît si quelqu'un sait m'aider avec une explication pour cela. P> P>
Au cas où vous seriez toujours curieux: geeksforgeeks.org/...
Dupliqué possible de Scanner ne voit pas après l'espace