그래서 수학 클래스의 추가 점수를 얻기 위해 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의 iterations를 위해 또는 그렇게 거의 10000.의 대신으로 단지 달린다. 그리고 그것은 중간을 끝내게되는 error ...을 끝낸다. – user1277591
아, 내가 뭔가있는 것 같아. 10 세트 만 통과하면 오류가 발생하지 않았습니다. 그런 다음 처리 한 문자열에서 숫자 0을 검색해 보았습니다. 아무 것도 없었습니다. 05와 같은 것이 있으면 5로 바꾸고 16 진수 문자열 1 길이로 만듭니다. – user1277591