2016-05-18 2 views
0

Wenn ich Eingabe einer ganzen Zahl in JOptionPane zulassen wollen, ichWie ermögliche ich Eingabe von Zeichenketten in JOptionPane

String something= JOptionPane.showInputDialog(null, " "); 
int x = Integer.parseInt(something); 

Doch dieses Mal möchte ich Eingabestring in den JOptionPane InputDialog brauchen würde. Gibt es einen ähnlichen Weg zu int x = Integer.parseInt(); aber funktioniert für die Zeichenfolge?

Und, wie mache ich eine erweiterte Funktion, mit der das Programm Fehler wie ungültige Eingaben erkennen kann? Z.B. wenn der/die Benutzer Leerzeichen eingeben und statt eines Wertes oder eines Wortes eingeben oder ihre Antwort außerhalb des gültigen Bereichs liegt. Also im Grunde ihre Antwort ist etwas wie Platz oder -99, wenn die Antwort innerhalb von 1 bis 100 sein sollte.

Es tut mir leid, wenn das dumm klingt, bin ich sehr neu in der Programmierung.

+1

Sie erhalten bereits ein '' 'String''' aus dem Eingabedialog, warum Sie es in einen' '' String''' analysieren möchte nochmal? –

Antwort

0

Gibt es eine ähnliche Möglichkeit Int Int = Integer.parseInt(); funktioniert aber für die Saite?

Um Ihre erste Frage zu beantworten, gibt es einen Weg. Wie @John Verner sagte, benutze einfach die Zeichenfolge, die du von JOptionPane erhältst! Keine Notwendigkeit, etwas Besonderes zu tun.

Und, wie mache ich eine erweiterte Funktion, mit der das Programm Fehler wie ungültige Eingabe erkennen kann?

Versuchen Sie Integer.parseInt(); auf die Zeichenfolge, die Sie erhalten. Wenn es throws und exception oder der zurückgegebene int nicht im angegebenen Bereich ist, weisen Sie den Benutzer an, ihn erneut einzugeben.

Weitere Informationen zu fangen Ausnahmen click here.

1
public static void main(String[] args) { 
     String message = JOptionPane.showInputDialog(null, "Enter a message:"); 
     boolean validMessage = false; 
     do { 
      if (isMessageEmpty(message)) { 
       message = JOptionPane.showInputDialog(null, "No message entered! Enter a message:"); 
      } else { 
       if (Integer.parseInt(message) > 100 || Integer.parseInt(message) < 0) { 
        message = JOptionPane.showInputDialog(null, "Message not acceptable, please enter a valid message::"); 
       } else { 
        validMessage = true; 
       } 
      } 
     } while (!validMessage); 
    } 

    private static boolean isMessageEmpty(String message) { 
     return message.trim().isEmpty(); 
    } 
Verwandte Themen