Java Programmierung zahl oder Buchstabe?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Nutze den java.util.Scanner zum Einlesen:

Scanner scanner = new Scanner(System.in);

while (scanner.hasNext()) {
   if (scanner.hasNextInt()){
	int number = scanner.nextInt();
	System.out.println("is a number: " + number);
	break;
   }
   scanner.next();
}
		
scanner.close();

Der Scanner läuft, so lange Eingaben gemacht werden. Wenn die Folgeeingabe eine Zahl ist, wird sie in eine Variable gespeichert, ausgegeben und die Schleife abgebrochen. Ansonsten macht der Zeiger des Scanners einfach nur einen Schritt vorwärts und der nächste Iterationsschritt beginnt.

Das kannst du noch zur do-while umformen, überlasse ich aber dir.

Falls du die Konsole nicht nutzt, könntest du den String natürlich auch anderweitig überprüfen, bspw. mit einem regulären Ausdruck, der im Folgebeispiel nur die Zahlen 1...99 zulässt.

public static boolean isExpectedNumber(String str){
    return str.matches("[1-9]{1}[0-9]{0,1}");
}

Anwendung:

if (isExpectedNumber(eingabe)) { /* parse string to int */ }

Wie das Parsen klappt, hat dir bereits XGamer11208 geschrieben.

1

In Java kann man vieles durch "parsen" umwandeln
also z.B. String zu Integer

int number = Integer.parseInt(numberAsString);

In C überprüfen ob Scanf-Eingabe Natürliche Zahl ist?

Hallo,

mit welchem bzw. welchen Befehlen kann ich in C überprüfen ob meine Eingabe eine Natürlcihe Zahl ist und keine negative oder Buchstabe ist? Danke

...zur Frage

do while + try catch Abfrage in Java zur Eingabenkontrolle erzeugt unendlichen Loop

Also ich will in Java eine Methode schreiben die die Eingabe kontrolliert und dann bei korrekter Eingabe den eingegeben Wert zurückgibt. Mein Quellcode sieht so aus

public static int liesInt(String Ausgabe)
{       
    Scanner eingabe = new Scanner (System.in);
    int eingegeben = 0;
    System.out.println(Ausgabe);
    boolean error = true;
    
    do
    {
        try
        {
            eingegeben = eingabe.nextInt();
            error = false;
        }
        catch(InputMismatchException e)
        {
            System.out.println("Bitte geben Sie nur ganze Zahlen ein!");
            error = true;
        }   
    } while (error == true);
            
    return eingegeben;
}

mein problem ist dass er nach dem der catch greift und den error wert auf true gesetzt ist er nicht wieder zum try springt und nicht erneut nach einer eingabe fragt...

wo ist mein fehler eigentlich müsste er nach dem catch wieder oben anfangen beim try aber das passiert nicht

...zur Frage

Java Zufallszahlen Programm (for Schleife)?

Ich brauche Hilfe bei einem Programm. In diesem Programm geht es darum, dass der Computer sich eine Zahl zwischen 1 und 100 ausdenkt, welche der Nutzer dann erraten soll. Je nachdem ob die Zahl größer oder kleiner ist wird es dann ausgegeben. Man hat 10 Versuche, doch wenn ich die Zahl in z.B. 5 Versuchen erraten habe fragt mich das Programm trotzdem noch weiter nach der Zahl, so lang bis die 10 Versuche verbraucht sind. Und wie kann ich es schaffen, dass wenn die Zahl nicht erraten wird, dass das Programm sie dann am Ende ausgibt ? das ist das Programm bis jetzt:

//----------------------------------------------Variablendeklaration------------------------------------------ String Eingabe1; int Zahl; int Eingabe;

    Random rand=new Random();
    Zahl= rand.nextInt(100);
    

//-------------------------------------------------Schleife--------------------------------------------------------

    for (int Zähler=0; Zähler<10; Zähler=Zähler+1)
    {
        Eingabe1=JOptionPane.showInputDialog(null, "Geben sie ihre ausgedachte Zahl ein");
        
        Eingabe=Integer.parseInt(Eingabe1);
        

//-------------------------------------------------if-Anweisung-------------------------------------------------- if (Eingabe<Zahl) { JOptionPane.showMessageDialog(null, "Die Zahl ist größer.");}

        else if (Eingabe>Zahl)
        {JOptionPane.showMessageDialog(null, "Die Zahl ist kleiner.");}
        
        else 
        {JOptionPane.showMessageDialog(null,  "Die Zahl ist richtig.");}
        
...zur Frage

Mein Java Programm gibt "Primzahl" 9 aus?!?!?!?!?

int zahl, Limit, P;

zahl = 1;                        //Primzahlen von...
Limit = 10;                      //...bis                     
boolean Prim = true;             // Prim = true wenn "zahl" eine Primzahl ist

System.out.println("Die Primzahlen zw. den Zahlen " + zahl + " und " + Limit + " sind: ");

while (zahl<=Limit) {            // solang "zahl" kleiner als "Limit" ist 
  if (zahl%2 == 0) {
    Prim = false; 

  } 
  if (Prim) {
    System.out.println(zahl);

  } 
  else{

    Prim = true;

  }
  zahl++;
}
...zur Frage

Was möchtest Du wissen?