Einführung
In diesem Lab werden Sie die Java-Methode forDigit()
kennenlernen, die zur Character
-Klasse gehört. Diese Methode gibt die angegebene Zeichendarstellung für die angegebene Ziffer gemäß der angegebenen Basis zurück.
💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken
In diesem Lab werden Sie die Java-Methode forDigit()
kennenlernen, die zur Character
-Klasse gehört. Diese Methode gibt die angegebene Zeichendarstellung für die angegebene Ziffer gemäß der angegebenen Basis zurück.
Erstellen Sie eine Java-Datei mit dem Namen CharForDigit.java
im Verzeichnis ~/project
mit dem folgenden Befehl:
touch ~/project/CharForDigit.java
Fügen Sie folgenden Code zur Datei CharForDigit.java
hinzu:
public class CharForDigit {
public static void main(String[] args) {
int n1 = 8;
int n2 = 23;
int n3 = 30;
char ch1 = Character.forDigit(n1, 9);
char ch2 = Character.forDigit(n2, 25);
char ch3 = Character.forDigit(n3, 36);
System.out.println("The char representation of " + n1 + " in radix 9 is " + ch1);
System.out.println("The char representation of " + n2 + " in radix 25 is " + ch2);
System.out.println("The char representation of " + n3 + " in radix 36 is " + ch3);
}
}
Dieser Code erstellt eine CharForDigit
-Klasse mit einer main
-Methode. Die main
-Methode zeigt, wie die forDigit()
-Methode verwendet wird, um die Zeichendarstellung einer Ziffer in verschiedenen Basen zu erhalten.
Kompilieren Sie die Datei CharForDigit.java
mit dem folgenden Befehl:
javac CharForDigit.java
Führen Sie dann den Code mit dem folgenden Befehl aus:
java CharForDigit
Sie sollten die folgende Ausgabe sehen:
The char representation of 8 in radix 9 is 8
The char representation of 23 in radix 25 is n
The char representation of 30 in radix 36 is u
Diese Ausgabe bestätigt, dass die forDigit()
-Methode wie erwartet funktioniert.
Lassen Sie uns nun den Code so ändern, dass er Benutzereingaben für die Ziffer und die Basis akzeptiert. Fügen Sie folgenden Code nach dem Anfangscode hinzu:
Scanner sc = new Scanner(System.in);
System.out.print("Enter digit: ");
int d = sc.nextInt();
System.out.print("Enter radix: ");
int r = sc.nextInt();
char result = Character.forDigit(d, r);
System.out.println("The character at radix \'" + r + "\' for the digit " + d + " is: " + result);
Dieser Code fordert den Benutzer auf, die Ziffer und die Basis einzugeben, liest die Eingabe von der Konsole und verwendet die forDigit()
-Methode, um die Zeichendarstellung der Ziffer zu erhalten.
Kompilieren Sie die modifizierte Datei CharForDigit.java
mit dem folgenden Befehl:
javac CharForDigit.java
Führen Sie dann den Code mit dem folgenden Befehl aus:
java CharForDigit
Sie sollten in der Konsole folgende Aufforderung sehen:
Enter digit:
Geben Sie eine Ziffer (z.B. 12) ein und drücken Sie die Eingabetaste. Sie sollten folgende Aufforderung sehen:
Enter radix:
Geben Sie eine Basis (z.B. 16) ein und drücken Sie die Eingabetaste. Anschließend sollten Sie die folgende Ausgabe sehen:
The character at radix '16' for the digit 12 is: c
Diese Ausgabe bestätigt, dass der modifizierte Code wie erwartet funktioniert.
Ändern Sie den Code, um ungültige Benutzereingaben zu behandeln. Fügen Sie folgenden Code nach dem Benutzereingabecode hinzu:
} catch (InputMismatchException e) {
System.out.println("Invalid input!");
}
Dieser Code fängt jede InputMismatchException
ab, die von der Scanner
-Klasse geworfen wird, wenn der Benutzer eine Eingabe gibt, die nicht als Ganzzahl interpretiert werden kann.
Kompilieren Sie die modifizierte Datei CharForDigit.java
mit dem folgenden Befehl:
javac CharForDigit.java
Führen Sie dann den Code mit dem folgenden Befehl aus:
java CharForDigit
Sie sollten in der Konsole folgende Aufforderung sehen:
Enter digit:
Geben Sie eine nicht numerische Eingabe (z.B. "abc") ein und drücken Sie die Eingabetaste. Sie sollten die folgende Ausgabe sehen:
Invalid input!
Diese Ausgabe bestätigt, dass der Code ungültige Eingaben wie erwartet behandelt.
Ändern Sie den Code, um zu überprüfen, ob die eingegebene Basis gültig ist. Fügen Sie folgenden Code nach dem Benutzereingabecode hinzu:
if (r < Character.MIN_RADIX || r > Character.MAX_RADIX) {
System.out.println("Invalid radix!");
return;
}
Dieser Code überprüft, ob die eingegebene Basis kleiner als die minimale Basis oder größer als die maximale Basis ist. Wenn ja, druckt er eine Nachricht und beendet das Programm.
Kompilieren Sie die modifizierte Datei CharForDigit.java
mit dem folgenden Befehl:
javac CharForDigit.java
Führen Sie dann den Code mit dem folgenden Befehl aus:
java CharForDigit
Sie sollten in der Konsole folgende Aufforderung sehen:
Enter digit:
Geben Sie eine Ziffer (z.B. 6) ein und drücken Sie die Eingabetaste. Sie sollten folgende Aufforderung sehen:
Enter radix:
Geben Sie eine Basis ein, die kleiner als 2
oder größer als 36
ist (z.B. 1
oder 100
), und drücken Sie die Eingabetaste. Sie sollten die folgende Ausgabe sehen:
Invalid radix!
Diese Ausgabe bestätigt, dass der Code ungültige Basen wie erwartet behandelt.
In diesem Lab haben Sie gelernt, wie Sie die forDigit()
-Methode der Character
-Klasse verwenden, um die zeichenbasierte Darstellung einer Ziffer in einer angegebenen Basis zu erhalten. Sie haben auch gelernt, wie Sie Benutzereingaben verarbeiten und auf gültige Eingaben prüfen.