Java如何无需循环将数字绝对值转换为ASCII对应字符
实现功能说明
- 接收整数输入,支持负数输入场景
- 计算输入数值的绝对值
- 输出绝对值对应ASCII表中的字符
- 全程不使用循环逻辑实现
现有代码问题梳理
- 类名不符合Java大驼峰命名规范,应调整为
AsciiReader - 核心逻辑默认只处理两个输入数的最大值,若需要处理全部输入数可自行调整对应逻辑
- 原最终输出语句逻辑错误,重复打印ASCII数值,未输出对应字符
- 部分注释表意不清晰
修正后完整代码
package Test; import java.util.Scanner; // 类名遵循Java大驼峰命名规范 public class AsciiReader { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int num1, num2; System.out.println("输入第一个数字:"); num1 = scan.nextInt(); System.out.println("输入第二个数字:"); num2 = scan.nextInt(); // 取两个输入数的最大值 int largestNum = Math.max(num1, num2); // 计算绝对值适配负数输入场景 int absNum = Math.abs(largestNum); // 强转为char类型得到对应ASCII字符 char asciiChar = (char) absNum; System.out.println("输入的两个数中最大值为:" + largestNum); System.out.println("最大值取绝对值后结果为:" + absNum); System.out.println("数值 " + absNum + " 对应的ASCII字符为:" + asciiChar); scan.close(); } }
代码说明
- 用JDK自带的
Math.abs()方法处理数值,直接完成绝对值计算,适配负数输入,全程无循环符合要求 - 直接将int类型的绝对值强转为char类型即可得到对应ASCII字符,无需额外转换逻辑
- 若需要对所有输入的数字单独处理,直接对每个输入值单独调用
Math.abs()后强转输出即可
内容的提问来源于stack exchange,提问作者MTJELL
相关产品推荐
相关产品推荐

