Antwort mit KI erzeugt
Aufgabe:
Im ersten Kommandozeilenargument sollen nach den Ziffern von 0 bis 9 gesucht werden und diese sollen ausgegeben werden.
Beispielstext: 86Te123st43
Ausgabe:
8
6
1
2
3
4
3
Lösung:
Der gegebene Code versucht, ein einzelnes Zeichen zu überprüfen, um zu sehen, ob es eine Ziffer ist, und wenn ja, dieses Zeichen auszugeben. Dies kann mit einer
if
-Verzweigung und der Funktion
Character.isDigit()
in Java erreicht werden.
Hier ist der vollständige Code mit den notwendigen Änderungen:
java
public class Main {
public static void main(String[] args) {
if (args.length > 0) {
String s = args[0];
char[] m = s.toCharArray();
// Iteriere durch das Array und prüfe ob das Zeichen eine Zahl ist
for (char c : m) {
if (Character.isDigit(c)) {
System.out.println(c);
}
}
} else {
System.out.println("Kein Argument vorhanden");
}
}
}
Erklärung:
1.
Überprüfung, ob ein Kommandozeilenargument vorhanden ist:java
if (args.length > 0) {
2.
Konvertiere das erste Argument in ein Zeichenarray:java
String s = args[0];
char[] m = s.toCharArray();
3.
Iteriere durch jedes Zeichen im Array, überprüfe, ob es eine Ziffer ist, und gib es aus:java
for (char c : m) {
if (Character.isDigit(c)) {
System.out.println(c);
}
}
4.
Fehlerbehandlung:
Wenn keine Kommandozeilenargumente vorhanden sind, wird eine Nachricht ausgegeben:
java
System.out.println("Kein Argument vorhanden");
Erläuterung der Funktion Character.isDigit()
:
-
Character.isDigit(char c)
ist eine Methode der Klasse
Character
, die einen
boolean
zurückgibt. Sie liefert
true
zurück, wenn der übergebene
char
-Wert eine Ziffer (0-9) ist, ansonsten
false
.
Mit diesem Code wird das angegebene Beispiel wie gewünscht funktionieren. Jegliche Ziffern aus dem Text "86Te123st43" werden einzeln ausgegeben.
Testen des Codes:
Beim Ausführen dieses Programms in einer Java-Umgebung mit dem Kommandozeilenargument "86Te123st43" sollte die erwartete Ausgabe:
8
6
1
2
3
4
3
erscheinen.