StringBuilder
을 사용하지 않고 문자열을 반대로 사용하려고합니다. 아래 코드를 작성했지만 루프를 치는 즉시 오류가 발생합니다. 오류는 누구나 내게 왜 그렇게 위대하다고 말할 수 있다면StringBuilder를 사용하지 않고 Java에서 문자열 반전
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 16
at lectures.ReverseString.main(ReverseString.java:38)
입니다. 참고로 나는이 코드가 효율적이지 않거나 우아하지 않다는 것을 알고 있지만 교육용으로 효과가없는 이유를 알고 싶습니다.
public static void main(String[] args) {
//declare variables
Scanner input = new Scanner(System.in);
String myString = "";
int length = 0, index = 0, index2 = 0;
//get input string
System.out.print("Enter the string you want to reverse: ");
myString = input.nextLine();
//find length of string
length = myString.length();
index2 = length;
//convert to array
char[] stringChars = myString.toCharArray();
char[] stringChars2 = stringChars;
//loop through and reverse order
while (index<length) {
stringChars2[index] = stringChars[index2];
index++;
index2--;
}
//convert back to string
String newString = new String(stringChars2);
//output result
System.out.println(newString);
//close resources
input.close();
}
그것은'index2 = 길이 있어야한다 - 1;'배열은 0에서 색인 기억 ... 길이 - 1 –
이것을 사용해보십시오 : length = myString.length() - 1; –
그건 그렇고, 내가 제안 할 수 있다면, 당신은 이것을하기 위해 두 개의 배열이 필요 없다. 두 개의 인덱스 변수가있는 단일 배열을 사용하고 첫 번째 문자와 마지막 문자를 바꾼 다음 두 번째 문자와 마지막 문자 등을 바꿔 넣으십시오. 두 색인이 중간에서 만날 때까지 계속 수행합니다. – Discoverer98