因此,为了获得数学课的额外学分,我正在编写一个程序来可视化 pi。每 6 位数字转换为十六进制颜色。
但是,当我尝试缩放颜色时遇到错误(因为 r、g 和 b 各有 2 位数字,我只能达到 99,而我想达到 255)。我遍历几千位 pi 并在每组 6 上运行此缩放函数,然后将其写入 BufferedImage 中的一个像素,但我不断收到 StringIndexOutOfBoundsException。当我尝试设置 retArray[i+1] = subArray[0] 时,我得到了同样的错误,但这次是在第 5 行。知道发生了什么吗?
private String scale(int org){
tmp = Integer.toString(org);
retArray = new char[6];
for(int i=0; i<=4; i+=2){
tmpsub = tmp.substring(i, i+2); //line 5
int2 = Integer.parseInt(tmpsub);
tmpint = (((float)(int2)/99)*255);
intie = (int)(tmpint);
tmpsub = Integer.toHexString(intie);
subArray = tmpsub.toCharArray();
retArray[i] = subArray[0];
retArray[i+1] = subArray[1]; //String Index Exception on this line
}
retString = "";
for(int i=0; i<retArray.length; i++)
retString+=retArray[i];
return retString;
}
非常感谢您对这个问题的任何帮助。希望这是我看不到的明显的东西。