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

Java中用for循环打印整数数组首元素始终为0的问题排查

问题修复:数组首元素打印为0的解决办法

你的代码核心问题是填充数组和打印数组的顺序搞反了,还多了没必要的嵌套循环:

  • 原代码的for-each循环先遍历打印数组元素,这时候数组还没被赋值,int数组的默认初始值是0,所以第一个元素直接打出0;
  • 之后才进入内层循环填充数组,等填充完成后,for-each继续遍历剩下的元素,这时候数组已经有值,所以后面的元素显示正常,但第一个0已经输出了。

修正后的代码

String stringNum = input.nextLine();
int size = stringNum.length();
int[] myArray = new int[size];

// 先完成数组填充
for (int i = 0; i < size; i++) {
    char n = stringNum.charAt(i);
    int intNum = Character.getNumericalValue(n);
    myArray[i] = intNum;
}

// 再遍历打印数组
for (int a : myArray) {
    System.out.print(a);
    System.out.print(" ");
}

修正说明

  1. 拆分了嵌套循环:先单独完成数组的赋值操作,确保打印时数组所有元素都已经被正确赋值;
  2. 去掉了重复填充数组的逻辑:原嵌套循环会在每次打印一个元素时重新填充整个数组,完全属于冗余操作,既浪费性能又打乱逻辑。

输入12345后,输出会变为1 2 3 4 5 ,符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 00:10:51