Prüfen auf -1 funktioniert nicht
Hallo
Versuche mich ja gerade an Java, und arbeite mich da gerade durch ein Tutorial.
Nun habe ich aber wider ein Problem.
Und zwar versuche ich eine Eingabe auf Korrektheit zu Prüfen.
Folgende Zeichen sind erlaubt:
1
2
3
-1
Habe es so weit, das mein Prüfer die Eingabe zwischen 1-3 und String unterscheiden kann.
Also wenn die Angabe z.B. "Hallo" ist, ist sie Falsch.
Bei 1-3 Richtig.
Wenn ich aber -1 eingebe kommt auch Falsch(Soll aber Richtig sein)
Irgendwas mache ich falsch, weiß aber noch nicht wo.
hier meine class:
Stehe beim class schreiben noch relativ am Anfang. Wenn jemand Tipps hat, wie ich das aufgeräumter /kürzer schreiben kann, immer her damit.
Das mit dem 2-3 war nur ein versuch, eigentlich soll dort -1 stehen.
Vermute den Fehler ja in dieser Zeile:
Aber auch wenn ich dort das + entferne geht es nicht.
Schonmal Danke für eine Antwort.
Mfg
Power-Poler
Versuche mich ja gerade an Java, und arbeite mich da gerade durch ein Tutorial.
Nun habe ich aber wider ein Problem.
Und zwar versuche ich eine Eingabe auf Korrektheit zu Prüfen.
Folgende Zeichen sind erlaubt:
1
2
3
-1
Habe es so weit, das mein Prüfer die Eingabe zwischen 1-3 und String unterscheiden kann.
Also wenn die Angabe z.B. "Hallo" ist, ist sie Falsch.
Bei 1-3 Richtig.
Wenn ich aber -1 eingebe kommt auch Falsch(Soll aber Richtig sein)
Irgendwas mache ich falsch, weiß aber noch nicht wo.
hier meine class:
class Pruefer
{
private String eingabe;
public void Eingabe()
{
//int eingabe;
}
public boolean pruefen(String eingabe)
{
if(eingabe.matches("[0-9]+"))
{
int eingabe1 = Integer.parseInt(eingabe);
if (eingabe1 == 1)
{
return true;
}
else
if (eingabe1 == 2)
{
return true;
}
else
if (eingabe1 == 3)
{
return true;
}
else
if (eingabe1 == (2-3))
{
return true;
}
else
return false;
}
else
return false;
}
}
Das mit dem 2-3 war nur ein versuch, eigentlich soll dort -1 stehen.
Vermute den Fehler ja in dieser Zeile:
if(eingabe.matches("[0-9]+"))
Schonmal Danke für eine Antwort.
Mfg
Power-Poler
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 189129
Url: https://administrator.de/forum/pruefen-auf-1-funktioniert-nicht-189129.html
Ausgedruckt am: 21.02.2025 um 11:02 Uhr
11 Kommentare
Neuester Kommentar
...da war der bastla mal wieder schneller, auch wenn ich nicht unbedingt "----9" erlauben würde 
Viel einfacher wäre es aber sich die String-Prüfung ganz zu sparen und einfach die Exception von Integer.parseInt zu fangen (die in dem Programm auch immer noch auftreten kann. Versuch mal
Viel einfacher wäre es aber sich die String-Prüfung ganz zu sparen und einfach die Exception von Integer.parseInt zu fangen (die in dem Programm auch immer noch auftreten kann. Versuch mal
8589934591
einzugeben...)
@dog

Grüße
bastla
auch wenn ich nicht unbedingt "----9" erlauben würde 
Hast recht if(eingabe.matches("^[+-]{0,1}[0-9]+$"))
bastla
Hallo Power-Poler!
Es sollte jetzt nur noch möglich sein, am Beginn (
für maximal 4-stellige Zahlen verwenden) ...
Grüße
bastla
Es sollte jetzt nur noch möglich sein, am Beginn (
^
) kein oder ein Plus oder Minus und danach bis zum Ende ($
) nur noch mindestens eine Ziffer einzugeben (wenn Du die Anzahl der Ziffern festlegen willst, kannst Du als Pattern zB^[+-]{0,1}[0-9]{1,4}$
Grüße
bastla
^$
ist in dem Fall überflüssig, weil die String.matches() Funktion die immer automatisch hinzufügt.Testen kann man das hier: http://www.regexplanet.com/advanced/java/index.html
Und
{0,1
} würde ich noch als ?
abkürzen 
Hallo Power-Poler!
Eventuell funktionierts auch mit:
Gruß Dieter
Eventuell funktionierts auch mit:
While (!Eingabe.equals("-1"))
Gruß Dieter