Lors de l'écriture d'un programme Java, nous souhaitons terminer la saisie de cette ligne en entrant Entrée. C'est un problème très courant, mais si nous utilisons Scanner, alors lorsqu'il est appelé via nextInt(. ), la saisie ne s'arrêtera pas, une ligne vierge sera imprimée, puis attendez que vous continuiez à saisir le numéro suivant.
Nous pouvons configurer deux scanners. Le premier lit les données en unités de ligne, ce qui équivaut à utiliser le retour chariot (entrée) comme terminateur,
puis transmet la chaîne lue dans le troisième deux scanners. , puis pour le traitement
ArrayList<Integer> arr = new ArrayList() ; System.out.println("Enter a space separated list of numbers:"); Scanner in = new Scanner(System.in); String line = in.nextLine(); Scanner in2 = new Scanner(line); while(in2.hasNextInt()){ arr.add(in2.nextInt()); } System.out.println("The numbers were:"+arr.toString());
Il vous suffit de remplacer la fonction nextInt ou hasnextint par le nom de la fonction dont vous avez besoin pour obtenir différentes entrées, mais cela se termine par un retour chariot (entrée).
Question
J'ai trouvé cette méthode dans le forum :
Scanner s =new Scanner(System.in); String str=""; do { str=s.nextLine(); if(s.hasNextLine()) break; }while(true); System.out.println(str);
Après l'entraînement, cette méthode ne fonctionne pas :
Il faut deux retours chariot pour terminer la saisie.
Scanner s= new Scanner(System.in); String str=s.nextLine(); Scanner st=new Scanner(str); ArrayList a =new ArrayList(); while(st.hasNextInt()) a.add(st.nextInt()); System.out.println(a);
Utiliser une chaîne comme flux d'entrée, des espaces comme séparateurs :
Code source :
cela appelle le constructeur suivant :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!