介绍
在本实验中,你将学习 Java Character
类中的 forDigit()
方法。该方法根据指定的基数(radix)返回指定数字的字符表示。
在本实验中,你将学习 Java Character
类中的 forDigit()
方法。该方法根据指定的基数(radix)返回指定数字的字符表示。
在 ~/project
目录下使用以下命令创建一个名为 CharForDigit.java
的 Java 文件:
touch ~/project/CharForDigit.java
将以下代码添加到 CharForDigit.java
文件中:
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);
}
}
这段代码创建了一个 CharForDigit
类,其中包含一个 main
方法。main
方法展示了如何使用 forDigit()
方法获取不同基数(radix)下数字的字符表示。
使用以下命令编译 CharForDigit.java
文件:
javac CharForDigit.java
然后,使用以下命令运行代码:
java CharForDigit
你应该会看到以下输出:
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
此输出确认 forDigit()
方法按预期工作。
现在,让我们修改代码以接受用户输入的数字和基数。在初始代码后添加以下代码:
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);
这段代码会提示用户输入数字和基数,从控制台读取输入,并使用 forDigit()
方法获取数字的字符表示。
使用以下命令编译修改后的 CharForDigit.java
文件:
javac CharForDigit.java
然后,使用以下命令运行代码:
java CharForDigit
你应该会在控制台中看到以下提示:
Enter digit:
输入一个数字(例如 12)并按 Enter 键。你应该会看到以下提示:
Enter radix:
输入一个基数(例如 16)并按 Enter 键。然后你应该会看到以下输出:
The character at radix '16' for the digit 12 is: c
此输出确认修改后的代码按预期工作。
修改代码以处理无效的用户输入。在用户输入代码后添加以下代码:
} catch (InputMismatchException e) {
System.out.println("Invalid input!");
}
这段代码会捕获 Scanner
类在用户输入无法解析为整数时抛出的 InputMismatchException
异常。
使用以下命令编译修改后的 CharForDigit.java
文件:
javac CharForDigit.java
然后,使用以下命令运行代码:
java CharForDigit
你应该会在控制台中看到以下提示:
Enter digit:
输入一个非数字的输入(例如 "abc")并按 Enter 键。你应该会看到以下输出:
Invalid input!
此输出确认代码按预期处理了无效输入。
修改代码以检查输入的基数是否有效。在用户输入代码后添加以下代码:
if (r < Character.MIN_RADIX || r > Character.MAX_RADIX) {
System.out.println("Invalid radix!");
return;
}
这段代码会检查输入的基数是否小于最小基数或大于最大基数。如果是,则打印一条消息并终止程序。
使用以下命令编译修改后的 CharForDigit.java
文件:
javac CharForDigit.java
然后,使用以下命令运行代码:
java CharForDigit
你应该会在控制台中看到以下提示:
Enter digit:
输入一个数字(例如 6)并按 Enter 键。你应该会看到以下提示:
Enter radix:
输入一个小于 2
或大于 36
的基数(例如 1
或 100
)并按 Enter 键。你应该会看到以下输出:
Invalid radix!
此输出确认代码按预期处理了无效基数。
在本实验中,你学习了如何使用 Character
类的 forDigit()
方法来获取指定基数下数字的字符表示。你还学习了如何处理用户输入并检查输入的有效性。