반응형
자바(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
이상, 오늘도 밤톨만큼 코딩했다.
반응형
'코딩 > JAVA' 카테고리의 다른 글
[JAVA] replaceAll을 사용해서 특정 문자들을 지우기 (0) | 2022.11.29 |
---|---|
[JAVA] 라이브러리를 사용하여 JSON 데이터 만들기 (ft. gson) (0) | 2022.11.23 |
[JAVA] renameTo와 move 함수를 사용하여 파일 이름 변경 및 이동하는 방법 (0) | 2022.11.21 |
[JAVA] 문자열을 split 함수를 사용해서 특정 구분자로 나눠보자 (0) | 2022.11.19 |
[JAVA] SimpleDateFormat 오전, 오후 포함 문자열 날짜 형식 변경 (0) | 2022.11.05 |