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

Java数组取值输出问题:现有代码无法正确读取输入并输出对应字符

问题修复方案

原代码存在两个核心问题,导致无法正确实现需求:

  • 未读取控制台输入的n个数值存入pos数组
  • 遍历输出时错误使用数组长度n作为下标,而非pos数组中存储的元素值

修复后的完整代码

import java.util.Scanner;
public class Exercise {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        short[] pos = new short[n];
        char[] alphabet = {'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};

        // 读取n个输入值存入pos数组
        for (int i = 0; i < pos.length; i++) {
            pos[i] = in.nextShort();
        }

        // 遍历pos数组,输出对应下标的字母
        for (int i = 0; i < pos.length; i++) {
            // 建议添加下标合法性判断,避免数组越界异常
            if (pos[i] >= 0 && pos[i] < alphabet.length) {
                System.out.print(alphabet[pos[i]]);
            }
        }
        in.close();
    }
}

关键修复点说明

  • 补充输入读取逻辑:新增循环读取n个short类型输入值,逐个存入pos数组,补上原代码缺失的核心步骤
  • 修正输出下标:将alphabet[n]改为alphabet[pos[i]],使用pos数组存储的元素作为字母数组的下标,实现按输入值对应输出字母
  • 额外优化:添加输入下标合法性判断,防止非法输入导致数组越界;关闭扫描器避免资源泄漏

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 13:40:26