코딩/JAVA

[JAVA] String index out of range 에러 발생하는 이유

밤유리 2022. 11. 27. 23:18
반응형

자바(Java)에서 문자열을 다룰 때, String index out of range 숫자와 같은 에러를 종종 확인할 수 있다. 발생하는 이유는  substring과 같은 함수로 문자열을 자를 때 잘라야 할 문자열이 정해진 값보다 작아서 발생할 때 생기는 에러이다. 그러므로 당황하지 말고 문자열의 크기만큼 조절해 주면 해결할 수 있다.

 

 

 

 


 

 

다음 예시는 "12345"라는 5자리의 문자열을 선언한 후, substring 함수를 사용하여 처음부터 6자리까지 자르도록 코드를 작성해 보았다. 그 후에 콘솔에 그 값을 출력할 수 있도록 한다.

// 5자리 문자열
String str = "12345";
// 자른 문자열 담을 객체
String newStr = "";

// 문자열 자르기
try {
    // 6자리까지 잘라내기 -> 에러 발생!!!!
    newStr = str.substring(0, 6);
    
} catch (Exception e) {
    e.printStackTrace();
}

// 결과 출력
System.out.println(newStr);

 

 

 

당연한 결과이지만, 5자리밖에 없는 문자열을 6자리 위치까지 자르려고 하여 StringIndexOutOfBoundExcept이라는 에러가 발생하는 것을 볼 수 있다.

 

 

 

 

에러를 해결하기 위해서 문자열을 자를 때 6을 5로 수정한 다음 다시 실행하였다.

// 문자열 자르기
try {
    // 5자리까지 자르도록 수정
    newStr = str.substring(0, 5);
    
} catch (Exception e) {
    e.printStackTrace();
}

 

 

이렇게 하면 아까 발생하는 에러 없이 제대로 실행되어 결과가 콘솔에 출력되는 것을 볼 수 있다.

12345

 

 

 

 

 

 

이상, 오늘도 밤톨만큼 코딩했다.

 

 

 

반응형