Hallo, ich bin derzeit ein Anfänger in Java. Der folgende Code ist eine while-Schleife, die weiter ausgeführt wird, bis der Benutzer etwas anderes als "ja" eingibt. Gibt es eine Möglichkeit, dass der Scanner mehr als eine Antwort akzeptiert? Z.B. ja, y, sicher, test1, test2 usw.Wie macht der Java-Scanner mehr als eine String-Eingabe?
Antwort
Vergleichen Sie die Benutzereingabe nicht mit einem Wert als Schleifenbedingung?
Beziehungsweise: diese Schleife Zustand wie
etwas ändernwhile(! ans.trim().isEmpty()) {
Mit anderen Worten: halten Looping, während die Benutzer etwas eingibt (so die Schleife beendet, wenn der Benutzer nur Hits eingeben).
Verwenden Sie den oder Operator in Ihrem Ausdruck
while (ans.equals("yes") || ans.equals("sure") || ans.equals("test1"))
{
System.out.print("Test ");
ans = in.nextLine();
}
Aber wenn Sie viele weitere Optionen gehen zu schließen, ist es besser, ein Verfahren bereitzustellen, das die Eingabe als Argument übernimmt, auswertet und gibt True zurück, wenn die Eingabe wird akzeptiert.
Sie suchen nach einer Methode, um zu prüfen, ob eine bestimmte Zeichenfolge in einer Liste von Zeichenfolgenwerten enthalten ist. Es gibt verschiedene Möglichkeiten, dies zu erreichen. Eine wäre die Verwendung der ArrayList
Methode, um zu überprüfen, ob Ihr Benutzereintrag in
in einer Liste von "positiven" Antworten erscheint, die Sie definiert haben.
Mit ArrayList
, könnte Ihr Code wie folgt aussehen:
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
ArrayList<String> positiveAnswers = new ArrayList<String>();
positiveAnswers.add("yes");
positiveAnswers.add("sure");
positiveAnswers.add("y");
Scanner in = new Scanner(System.in);
String ans = "yes";
while (positiveAnswers.contains(ans))
{
System.out.print("Test ");
ans = in.nextLine();
}
}
}
Warum nicht eine Art 'Set' anstelle einer' ArrayList' verwenden? Es wäre viel effizienter, wenn es viele zu überprüfende Begriffe gäbe. und der Code wäre nicht komplexer (in der Tat fast identisch). –
- 1. Wann macht SOAP mehr Sinn als REST?
- 2. Wie man mehr als ein Ereignis auf einer Taste macht
- 3. Wie man mehr als 10 Subplots in einer Figur macht?
- 4. Wie man mehr als einen html Player macht
- 5. Bildwähler mehr als eine
- 6. Position: absolute macht ein hr-Element mehr als 100% breit
- 7. Mehr als eine Zeile als Ergebnis
- 8. Wie Sie mehr als eine Variable
- 9. Mehr als eine ACS-URL
- 10. Macht WPF Databinding mehr Mühe, als es wert ist?
- 11. Mysqldump mehr als eine Tabelle?
- 12. Asserter, der mehr als ein Element zurückgibt
- 13. C++ mehr als eine Konstruktors
- 14. Macht "left: -10000%" deutlich mehr Verarbeitungs-/Renderleistung als "left: -100%"?
- 15. jquery, node - mehr als eine Anfrage bekommen
- 16. Prolog findall/3: mehr als eine Tasche
- 17. Was macht eine SQL-Anweisung als Sargable?
- 18. Wie mehr als eine Überschreibung für eine virtuelle Funktion
- 19. highchart Treemap in R mit mehr als 2 Drilldowns macht eine falsch verschachtelte Map
- 20. Wie kann ich überprüfen, ob eine Stringeingabe ein gültiges Double ist?
- 21. Angular 2 Mehr als eine Komponente auf der gleichen Seite
- 22. Zeichnen mehr als eine Funktionskurven in der gleichen Parzelle
- 23. Fehler: Mehr als eine Instanz der Bibliothek gefunden
- 24. Multiple User Abschnitt [mehr als eine Seite]
- 25. gridview mit mehr als eine Datenquelle
- 26. SQL: Drehbare auf mehr als eine Spalte
- 27. Ember.Component (Blockform): mehr als eine Steckdose {{yield}}
- 28. Falls mehr als eine YoutubePlayerFragment in der gleichen Aktivität
- 29. Drools Regeln mehr als eine ruleflow-Gruppe
- 30. Anwendung der Pandas-Funktion auf mehr als eine Spalte
Sie suchen eine Methode suchen um zu überprüfen, ob eine bestimmte Zeichenfolge in einer Liste der String-Werte enthalten, wie '[„ja“,„sicher“ , "..."] '. [Einige Antworten hier] (http://stackoverflow.com/questions/1128723/how-can-i-test-if-an-array-contains-a-certain-value) wird Ihnen helfen, Ihr Problem zu lösen. –