문자열 자르기 - substring 사용법

장찬익·2023년 10월 12일

JAVA 학습 일지

목록 보기
21/28
  • 자바(Java)에서 문자열을 자르는 방법으로 substring을 제공하고 있다.
  • substring은 2가지 방식의 인자값을 받고 있으며 방식은 아래와 같다.

substring 사용법

String substring(int startIndex);
String substring(int startIndex, int endIndex);

startIndex는 시작지점의 인덱스 값이고, endIndex는 종료 지점의 인덱스 값이다.
두 방식 모두 return 값으로 문자열(String)이 리턴된다.

사용 예제

public class Main {

    public static void main(String args[]) {
        String example = "동해물과 백두산이 마르고 닳도록";
        System.out.println("example.length->" + example.length());

        System.out.println(example.substring(5));
        System.out.println(example.substring(5,8));
    }
}
//출력 값
//example.length->17
//백두산이 마르고 닳도록
//백두산

example에는 애국가의 일부가 담겨져 있고, 전체 문자열의 크기는 17개의 문자로 되어 있다.

첫번째 substring(5)의 경우 "백두산이 마르고 닳도록"까지 리턴이 되는데 인자값이 하나만 넣을 경우, index 시점부터 마지막 문자열까지 가져오라라는 말과 동일하다.

인덱스는 시작이 0으로 시작되며, 각각 0:동, 1:해, 2:물, 3:과, 4:공백, 5:백으로 인덱스가 잡히기 때문에 백이 있는 위치가 5이다. 8의 위치는 백두산이에서 마지막인 이인데, 이가 위치한 곳까지 가지고 오라고 했기 때문에 이를 시각적으로 보면 다음과 같다.

에러가 발생할 경우

substring의 경우 초보자분들이 많이 실수 하는 것이 length를 체크하지 않고 막 쓰는 경우이다.

에러 발생 예제

public class Main {

    public static void main(String args[]) {
        String example = "동해물과 백두산이 마르고 닳도록";
        System.out.println(example.substring(15,18));
    }
}

substring에서 발생하는 에러는 StringIndexOutofBoundsException이 주로 발생하며, 범위를 벗어난 값을 호출할 때 발생을 한다. 즉, substring을 사용할 때에는 인덱스 값을 명시하지 말고, 값을 체크해서 사용하는 버릇이 중요하다.

profile
장찬익 입니다

0개의 댓글