数组超过边界,数组个数是变量

问题遇到的现象和发生背景

为了单独输出每个数位

问题相关代码,请勿粘贴截图

int [] digit=new int[k];
for(;;k++)
{
digit[k-1]=y%(int)Math.pow(10, k);
digit[k-1]=(int)digit[k-1]/(int)Math.pow(10, k-1);
if(y%(int)Math.pow(10, k)==y)
{
break;
}
}

运行结果及报错内容

img

我的解答思路和尝试过的方法

把k改成10000,可以

我想要达到的结果

数组大小可以改成和K有关的变量

数组的用法如果是这样,那不如直接定义一个变量呢。
你初始化一个空间为k的数组,后续操作是在k的基础上,进行递增,而数组的容量还是k,能不越界吗?
你说k改成10000,那10的10000次方能用int保存吗

1、java中数组是定长的
2、如果要用变长的数组就用List