Java实现用户输入整数转换为对应ASCII字符的问题求解
代码问题点
main方法中调用printCharacter()时没有传入获取到的整数值,且该方法返回值为void,无法直接拼接在输出字符串中printCharacter方法内部错误调用了getWholeNumber()方法,应该直接使用传入的整型参数,不需要加括号- 多次调用
getWholeNumber()会重复触发用户输入,建议先把获取到的数值存为变量再使用 - 缺少
Scanner类的import声明,同时重复创建Scanner实例会造成资源浪费
修正后可运行代码
import java.util.Scanner; public class AsciiConvertDemo { // 全局共用一个Scanner对象 private static final Scanner SCANNER = new Scanner(System.in); public static void main(String[] args) { System.out.println( "*** 你需要输入的整数范围为33-126,浮点数范围为33.0-126.0 ***"); System.out.println(""); // 只调用一次输入方法,将结果存入变量 int inputNumber = getWholeNumber(); System.out.print("输入的数字为 " + inputNumber + " 对应的ASCII字符是 "); // 传入参数调用字符转换方法 printCharacter(inputNumber); } public static int getWholeNumber() { System.out.println("请输入一个整数,不要包含小数点:"); return SCANNER.nextInt(); } public static void printCharacter(int wholeNumber) { // 直接使用传入的参数做类型强转 char asciiChar = (char) wholeNumber; System.out.println(asciiChar); } }
调整说明
- 补充
Scanner类的导入声明,同时将Scanner设置为全局共用对象,避免重复创建 - 先将用户输入的整数存入变量,仅触发一次用户输入操作
- 调用
printCharacter()时传入获取到的整数参数,匹配方法的入参要求 - 修改
printCharacter方法的逻辑,直接使用传入的参数做强转,不会重复触发输入 - 拆分输出逻辑,避免将
void返回值的方法拼接到字符串中引发报错
内容的提问来源于stack exchange,提问作者Regis
相关产品推荐
相关产品推荐

