두 개의 4 자리 숫자를 뒤집는 프로그램을 작성 중이며이를 수행 할 방법을 작성했습니다. 프로젝트 빌드에는 오류가 없지만 실행하려고하면 "String index out of range : -3"이됩니다. 나는 프로그래밍에 익숙하지 않고 무엇을 잘못했는지 전혀 모른다. 라인에서하위 문자열로 인해 문자열 인덱스가 범위를 벗어났습니다.
public static void main(String[] args)
{
int num1 = 1;
int num2 = 1;
Scanner console = new Scanner(System.in);
while (num1 <1000 || num1 > 9999)
{
System.out.println("Please enter a positive 4 digit number");
num1 = console.nextInt();
}
String numString1 = Integer.toString(num1);
while (num2 <1000 || num2 > 9999)
{
System.out.println("Please enter another positive 4 digit number");
num2 = console.nextInt();
}
String numString2 = Integer.toString(num2);
int numReverse1 = stringReverse(numString1);
int numReverse2 = stringReverse(numString2);
System.out.println(numReverse1 + numReverse2);
System.out.println("The product of your 2 reversed numbers is: " + (numReverse1 * numReverse2));
}
public static int stringReverse (String numString)
{
String c1c2c3 = numString.substring(4);
String c2c3c4 = numString.substring(1);
String c1c2 = c1c2c3.substring(3);
String c3c4 = c2c3c4.substring(1);
String c1 = c1c2.substring(2);
String c2 = c1c2.substring(1);
String c3 = c3c4.substring(2);
String c4 = c3c4.substring(1);
String numStringReverse = c4 + c3 + c2 + c1;
int reversedString = Integer.parseInt(numStringReverse);
return reversedString;
}
}