J'ai un problème avec mon application Java. L'application est nécessaire pour effectuer les opérations suivantes:Erreur dans l'application Java avec le scanner. Next() vs NextLine() et pourquoi je reçois une erreur?
(1) invite l'utilisateur à une chaîne qui contient deux chaînes séparées par une virgule. (1 pt)
Des exemples de chaînes qui peuvent être acceptés: Jill, Allen Jill, Allen Jill, Allen Ex:
Entrez chaîne d'entrée: Jill, Allen
(2) Rapport une erreur si la chaîne d'entrée ne contient pas de virgule. Continuez à demander jusqu'à ce qu'une chaîne valide soit entrée. Remarque: Si l'entrée contient une virgule, supposez que l'entrée contient également deux chaînes. (2 pts)
Ex:
Entrez chaîne d'entrée: Jill Allen Erreur: pas de virgule dans la chaîne Entrez chaîne d'entrée: Jill, Allen
(3) Extrait les deux mots de la chaîne d'entrée et supprimez tous les espaces. Stockez les chaînes dans deux variables distinctes et affichez les chaînes. (2 pts)
Ex:
Entrez chaîne d'entrée: Jill, Allen Le premier mot: Jill Deuxième mot: Allen
(4) En utilisant une boucle, étendre le programme à gérer plusieurs lignes de contribution. Continuez jusqu'à ce que l'utilisateur entre q pour quitter.(2 pts)
Ex:
Entrez chaîne d'entrée: Jill, Allen Le premier mot: Jill Deuxième mot: Allen
Entrez chaîne d'entrée: Golden Monkey Premier mot: Golden Deuxième mot : Singe
Entrez chaîne entrée: Washington, DC premier mot: Washington Deuxième mot: DC
Entrez chaîne entrée: q
Mon code:
package parsestrings;
import java.util.Scanner;
public class ParseStrings {
public static void main(String[] args) {
Scanner scnr = new Scanner(System.in); // Input stream for standard input
Scanner inSS = null; // Input string stream
String lineString = ""; // Holds line of text
String firstWord = ""; // First name
String secondWord = ""; // Last name
boolean inputDone = false; // Flag to indicate next iteration
// Prompt user for input
System.out.println("Enter input string: ");
// Grab data as long as "Exit" is not entered
while (!inputDone) {
// Entire line into lineString
lineString = scnr.next();
// Create new input string stream
inSS = new Scanner(lineString);
// Now process the line
firstWord = inSS.next();
// Output parsed values
if (firstWord.equals("q")) {
System.out.println("Exiting.");
inputDone = true;
if (firstWord.matches("[a-zA-Z]+,[a-zA-Z]+")) {
System.out.print("Input not two comma separated words");
}
} else {
secondWord = inSS.next();
System.out.println("First word: " + firstWord);
System.out.println("Second word: " + secondWord);
System.out.println();
}
}
return;
}
}
L'erreur Im se retourne:
Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Scanner.java:862)
at java.util.Scanner.next(Scanner.java:1371)
at parsestrings.ParseStrings.main(ParseStrings.java:53)
Java Result: 1
@Adro S'il vous plaît lire: [? Que dois-je faire quand quelqu'un répond à ma question] (https://stackoverflow.com/help/someone-answers) –