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.
Hallo, ich habe folgendes problem:
ich möchte per start Argument args zahlen übergeben und
wenn Buchstaben fälschlicherweise eingegben werden soll eine Fehlermeldung kommen.
Kann man prüfen ob in einem array nur zahlen enthalten sind?
etwas so?
Java:
public class nurZahlen {
public static void main(String[] args) {
if (args.equals("abc...")){ // so gehts ja nicht!
System.out.println("Fehler! Es sind nur Zahlen erlaubt!);
public class nurZahlen {
public static void main(String[] args) {
try{
<Programm>
}
catch (NumberformatException e)}
System.out.println("Fehler! geben Sie nur Zahlen ein!");
return;
}
Lösungsansatz: Prüfen ob die Zahl ein Integer ist, da ein Integer ganze Zahlen abbildet
Java:
// Methode liefert einen Boolean zurück, ob ein String ausschließlich
// Zahlen enthält (true) oder auch andere Zeichen (false).
protected boolean nurZahlen(String s) {
for(int i = 0; i < s.length(); i++) {
if(!s.charAt(i).isDigit()) {
return false;
}
}
return true;
}
Diese Methode müsstest du dann noch in eine Schleife packen sodass du alle Args einmal an die Methode übergibst.
z.b.
Java:
#Durchlaufe alle Argumente
for(String s : args)
{
if(nurZahlen(s))
{
#Nur zahlen enthalten also loslegen
}else {
#Enthält nicht nur Zahlen also den User wiederholen lassen
}
}
konnte es jetzt nicht testen aber so würde ich es umsetzen.
public class nurZahlen {
public static void main(String[] args) {
int n = args.length;
int[] array = new int[n];
try{
for (int i=0;i<n;i++) {
array[i] = Integer.parseInt(args[i]);
<Programm>
}
}
catch (NumberformatException e)}
System.out.println("Fehler! geben Sie nur Zahlen ein!");
return;
}
wobei ich persönlich das Programm hinter die try-catch Stellen würde, da ggf dann der Catch auch in deinem Programm passieren könnte und du keine saubere Fehlerbehandlung mehr hast.
Der Ansatz mit der NumberFormatException ist bestimmt am sinnvollsten, schliesslich musst du die Zahlen ja sowieso aus dem String in eine Zahl (int) verwandeln.
Der Ansatz mit der NumberFormatException ist bestimmt am sinnvollsten, schliesslich musst du die Zahlen ja sowieso aus dem String in eine Zahl (int) verwandeln.