저는 Java 프로그래밍에 익숙하지 않고 문자열의 공백을 %20
으로 바꾸고 마지막 String을 반환하는 코드를 작성했습니다. 다음은 문제의 코드입니다. 프로그래밍에 익숙하지 않으므로 내가 잘못한 것을 말해주십시오. 내 하찮은 영어 실력에 죄송하다는 말씀을 드리고 싶습니다.배열 인덱스가 바운드 예외를 반환하는 문자 배열
package Chapter1;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Problem4 {
public char[] replaceSpaces(char[] str_array, int length)
{
int noOfSpaces=0,i,newLength;
for(i=0;i<length;i++)
{
if(str_array[i]==' ')
{
noOfSpaces++;
}
newLength = length + noOfSpaces * 2;
str_array[newLength]='\0';
for(i=0;i<length-1;i++)
{
if(str_array[i]==' ')
{
str_array[newLength-1]='0';
str_array[newLength-2]='2';
str_array[newLength-3]='%';
newLength = newLength-3;
}
str_array[newLength-1]=str_array[i];
newLength = newLength - 1;
}
}
return str_array;
}
public static void main(String args[])throws Exception
{
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Please enter the string:");
String str = reader.readLine();
char[] str_array = str.toCharArray();
int length = str.length();
Problem4 obj = new Problem4();
char[] result = obj.replaceSpaces(str_array, length);
System.out.println(result);
}
}
는하지만 다음과 같은 오류 얻을 :
Please enter the string:
hello world
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 11
at Chapter1.Problem4.replaceSpaces(Problem4.java:19)
at Chapter1.Problem4.main(Problem4.java:46)
"% 20"(또는'+')이어야합니다. URL 인코딩 된 공간입니다. –