Um ein vom Benutzer eingegebenes Land zu validieren, versuche ich, diese Ländereingabe mit einer Liste von Ländern zu vergleichen, die in einer Textdatei gespeichert sind. Wenn die Eingabe ein Land in der Textdatei gespeichert einstimmt, würde die validCountry auf ‚true‘ gesetzt werden und das Programm würde proceed.This die Lage sein, ist das, was ich bisher habe:Eingabe einer bestimmten Zeile in einer Textdatei vergleichen JAVA
Scanner sc = new Scanner (System.in);
String country = "";
boolean validCountry = false;
while (!validCountry)
{
System.out.print("Country: ");
String countryIn = sc.next();
try{
Scanner scan = new Scanner(new File("countries.txt"));
while (scan.hasNext()) {
String line = scan.nextLine().toString();
if(line.contains(countryIn))
{
country = line;
validCountry = true;
}
}
}catch(Exception e)
{
System.out.print(e);
}
}
Die oben einfach Schleifen für mich, das Land neu einzugeben (impliziert, dass es ungültig ist).
Dies ist, was die countries.txt Datei sieht aus wie (natürlich alle Länder der Welt enthält nicht nur die ersten paar beginnend mit ‚A‘:
Afghanistan
Albania
Algeria
American Samoa
Andorra
Angola
Anguilla
...
Ich bin sicher, es ist eine sehr einfache und kleinerer Fehler, den ich nicht zu finden scheint, aber ich habe versucht, es für eine Weile zu entdecken, aber ohne Erfolg.Ich habe mehrere andere stackoverflow Antworten überprüft, aber sie schienen auch nicht zu arbeiten Form der Hilfe :)
Bitte lassen Sie mich wissen, wenn meine Frage weitere Erläuterungen benötigt.
Welche Art von Fehler erhalten Sie? ist die Textdatei korrekt geladen? – user7291698
Ich bekomme keinen spezifischen Fehler, es läuft einfach zurück, um ein Land einzugeben. Ich nehme an, die Textdatei ist korrekt geladen - sonst würde die Konsole mir eine 'Datei nicht gefunden' Fehler geben; was tut es nicht..so nehme ich an es ist richtig geladen? –
Ja, wenn Sie dort keinen Fehler bekommen, dann ist es wahrscheinlich richtig geladen. Vielleicht überprüfen Sie aber, ob scan.hasNext() jemals true zurückgibt (durch Debuggen oder durch eine System.out.println() – user7291698