1
私の数学クラスの特別な賞として、piを視覚化するプログラムを作成しています。 6桁ごとに16進数に変換されます。PiでのRGB値のスケーリング
しかし、私は色を調整しようとするとエラーに遭遇しています(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;
}
ありがとうございました。うまくいけば、私には分かりません。
'subArray.length == 1'? –
私は推測します...まだ10000回程度ではなく、約100回の反復でしかうまく動かないので、実際には意味がありません。途中でエラーが途切れてしまいます。 – user1277591
ああ、私は何かをしていると思う。私はそれが私に間違いを与えなかった10セットを通過するように言ったとき。それから、処理した文字列の中の数字0を検索しようとしましたが、何もありませんでした。私は05のようなものがあればそれを5に置き換え、16進数の文字列1の長さを作ると思います。 – user1277591