Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Hi ich versuch seit 3 Tagen ein Programm zu machen das überprüft ob bei einen String nur Zahlen eingegeben werden. Naja hab das hier herausbekommen.. bin noch ein totaler Noob in Sachen Strings, wär nett wenn mir einer sagen könnte was hier falsch ist
Code:
import java.util.Scanner;
public class StringMethoden1 {
/**
* @param args
*/
static String charEingabe(String prompt){
Scanner in = new Scanner(System.in);
return(in.next());
}
static boolean hatNurZiffern(String s){
boolean j = true;
s = charEingabe("Geben Sie bitte etwas ein");
for(int i = 0; i<= s.length(); i++){
char ch = s.charAt(i);
if (ch >= 0 && ch <= 9){
return j;
}else{
return j = false;
}
}
}
public static void main(String[] args) {
boolean prüfe = hatNurZiffern("");
if (prüfe = true){
System.out.println("Dieser String besteht nur aus Ziffern");
}else{
System.out.println("Dieser String besteht nicht nur aus Ziffern");
}
}
}
ist der reguläre Ausdruck, der überpfrüft, ob alle Zeichen ("*") in string "digits" sind (\\d), also Zahlen von 0-9.
Den doppelten Backslash musst du machen, da der Backslash selber eine besondere Bedeutung bei den regulären Ausdrücken hat.
Eine andere Möglichkeit (die allerdings nicht so elegant wäre), ist, den String einfach per Integer.parseInt(string) versuche in einen int zu überführen. Falls dabei eine NumberFormatException geworfen wurde, enthält der String Zeichen, die nicht zu einem int überführt werden können.
Allerdings weiß ich nicht, wie die Methode reagiert, falls du den Wertebereich von int überschreitest. ???:L
Naja.. die ganze hatNurZiffern(String)-Methode kannst du durch den einen Befehl erstezen.
Allerdings frage ich mich bei deinem Code noch
(1) was macht die charEingabe(String)-Methode genau? Wo wird die aufgerufen?
(2) warum übergibst du, in der main-Methode einen leeren String ("") an die hatNurZiffern()?
...das da ist übrigens auch unsinn, weil du immer nur das allereste zeichen überprüfst... strings hin oder her, da gibts wohl eher ein problem mit der logik :roll:
Ja ich bin nicht so ganz da hatte dieses wochenende insgesamt ca 3 stunden schlaf
hab jetzt das prüfen = true auf prüfen abgeändert nur bei hatNurZiffern komm ich einfach nich weiter
könntest du mir vl ein letztes mal noch helfen bitte? ^^
mal als kleiner Tipp.
Wenn er sagt "string.matches(...)" meint er, Du sollst für "string" die String-Variable einsetzen die Du überprüfen möchtest.
Du sollst außerdem Deine Methode "hatNurZiffern" ganz entfernen und anstatt "matches()" ausführen, was Dir auch true oder false liefert.
Nochn tipp:
if (irgendwas == true)
kannst Du mit
if (irgendwas)
abkürzen und gleichzeitig Fehler vermeiden.
irgendwas ist ein boolean und hat den Wert true oder false. if überprüft auf true oder false, deshalb brauchst Du es nicht explizit hinschreiben.