substring()

String[] substring(int index)

- String[] substring(int index, int endIndex)

substring() 함수는 입력받은 위치를 기준으로 문자열을 잘라 리턴하는 함수이다.


public class SubstringTest{

    public static void main(String[] args){

        String str1 = "나의 자바 테스트";

        System.out.println( str1.substring(3) );  // 자바 테스트
        System.out.println( str1.substring(2,5) );  //  자바

    }

}

 

왜 저런 결과가 나오는지 알아보자

 

1. str1.substring(3) 이것의 의미는 "3번index" 부터 보여달라 그런의미로 보면 된다.

(인덱스는 공백을 포함한다.)

문자열    
index 0 1 2 3 4 5 6 7 8

 

2. str1.substring(2,5) 이것의 의미는"2번 index" 부터 "5번 index" 되기 까지 보여달라 그런 의미이다.

문자열    
index 0 1 2 3 4 5 6 7 8

5번 index 까지 보여주는게 아니라 끝부분으로 5번 index를 지정한것으로

해당 index 그 전까지 (즉 위 예제를 보면 5를 지정했으니 4까지 보여주는것이다) 보여준다 생각하면 된다.

그래서 위의 결과값을 보면 "자바"  앞에는 공백이 있지만 뒤에는 공백이 없다.

 

그럼 만약 index를 오버해서 지정하면 어떻게 될까?

 System.out.println( str1.substring(2,10) );
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 10

 

흔하게 볼수 있는 범위를 벗어났다는 에러를 출력하게 된다.

정확한 길이를 측정하여 사용하는 것이 중요하다.

반응형