You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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);
    }
}

调整说明

  1. 补充Scanner类的导入声明,同时将Scanner设置为全局共用对象,避免重复创建
  2. 先将用户输入的整数存入变量,仅触发一次用户输入操作
  3. 调用printCharacter()时传入获取到的整数参数,匹配方法的入参要求
  4. 修改printCharacter方法的逻辑,直接使用传入的参数做强转,不会重复触发输入
  5. 拆分输出逻辑,避免将void返回值的方法拼接到字符串中引发报错

内容的提问来源于stack exchange,提问作者Regis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 01:30:00