2017-04-26 5 views
-2

Ich entschuldige mich im Voraus für meine Post. Ich beschloss, mich heute Abend zu registrieren und das ist mein erster Beitrag.Java Anfänger Logik Fehler Hilfe benötigt

Ein kleiner Hintergrund über die Frage.

Ich mache ein kleines Java-Projekt, wo ich einen Namen von Benutzereingaben nehmen muss, die in einer Variablen gespeichert werden. Der Variablenwert muss dann die Ausgabe anzeigen.

meine Frage ist. Wie wird es in Java gemacht, das Schlüsselwort (if) zu verwenden, um meinen Code zu verwenden, um eine if-Anweisung zu erstellen, die meine einfache i_PlayerName-Methode eines logischen Fehlers ungültig macht.

um genauer zu sein, wie kann ich sicherstellen, dass mein Programm nur einen Zeichenfolgenwert akzeptiert, und wenn ein anderer Datentyp eingegeben wird, wird eine Ausgabenachricht angezeigt "Benutzereingabe nicht akzeptiert".

zuletzt, wie heißt diese Prozedur?

Danke all :)

halten auf den Code-Codierung.

public void i_PlayerName() { 

    String playerName; 

    Scanner i_playerName = new Scanner(System.in); 
    System.out.println("ENTER YOUR SHIP NAME"); 
    playerName = i_playerName.nextLine(); 
    System.out.println("Your vessel has been named " + playerName); 
} 
+3

Ich denke, Sie müssen ein grundlegendes Tutorial lesen. [Dies ist zum Beispiel] (https://docs.oracle.com/javase/tutorial/java/nutsandbolts/flow.html). –

+0

Dies sieht wie eine Befehlszeilenschnittstelle aus. Was auch immer Benutzer eingeben, wird als String-Typ betrachtet. Sie möchten wahrscheinlich etwas wie StringUtils.isAlpha (playerName) verwenden, um sicherzustellen, dass nur Buchstaben eingegeben wurden oder welche Validierungslogik Sie haben. Siehe https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/StringUtils.html#isAlpha-java.lang.CharSequence- – user2793390

+0

Willkommen bei Stack Overflow! Bitte [besuchen Sie die Tour] (http://stackoverflow.com/tour), um zu sehen, wie die Seite funktioniert und welche Fragen hier behandelt werden, und bearbeiten Sie Ihre Frage entsprechend. Siehe auch: [Warum ist "Kann mir jemand helfen?" keine Frage?] (https://meta.stackoverflow.com/questions/284236/why-is-can-someone-help-me-not-an-actual-questition) –

Antwort

0

Angenommen, Sie Alphabete gemeint, als Sie sagten nur strings erlaubt, dies sollte es tun.

public static void main(String[] Args) { 
    String playerName = ""; 
    System.out.print("Enter ship name: "); 
    Scanner scanner = new Scanner(System.in); 
    String i_playerName = scanner.next(); 
    System.out.println(); 
    char[] chars = i_playerName.toCharArray(); 
    boolean isChar = true; 
    for (char c : chars) { 
     if (!Character.isLetter(c)) { 
      isChar = false; 
     } 
    } 
    if(isChar == true) { 
     System.out.println("Your vessel has been named: " + i_playerName); 
    } 
    else { 
     System.out.println("User input is not accepted."); 
    } 

} 
+0

Antwort funktioniert einfach großartig. Danke für die schnelle Hilfe. sehr geschätzt. –

+0

@ David-LeeIngham Bitte akzeptieren Sie die Antwort, wenn es geholfen hat. Bitte. :) – Zzrot

+0

Danke, sorry ich war im Urlaub :) Ihre Antwort ist angekreuzt –

0

, wenn der Scanner, wenn Sie es in einen String-Typ zuordnen liest es unabhängig von der Eingabe als String übernehmen, wenn die Benutzereingaben Zahlen oder Strings. Wenn Sie das Szenario behandeln möchten, wenn Benutzereingaben einen anderen Wert als String haben, können Sie dies mit dem regulären Ausdruck tun. Wenn die Eingabe keine Übereinstimmung ist, geben Sie den Fehler aus. Verwenden Sie die folgende Methode, um zu überprüfen, ob die Eingabe ein String ist.

public boolean isStringValue(String s){ 
    String pattern= "[a-zA-Z]*"; 
    return s.matches(pattern); 
} 

// Verwendung Methode oben:

String input = scan.next(); 
if(isStringValue(input)){ 
//your code 
} else { 
//output some error 
} 
+0

Sie brauchen die '^' und '$' im regulären Ausdruck nicht. –

+0

Vielen Dank für die Antworten. Ich war die letzten Tage im Urlaub, also entschuldige ich mich für die langsamen Ticks. –