substring(int start, int end) : 문자열을 지정한 범위만큼 잘라서 반환한다.
substring()메소드는 2가지 방법으로 사용할 수 있다.
substring(시작 인덱스)import java.lang.String
String str = bufferedReader.readLine();
String subStr = str.substring(3); //str 3번 인덱스부터 문자열로 저장
char A[] = str.subString(3).toCharArray; //str 3번 인덱스부터 배열로 저장
str = str.substring(시작 인덱스, 끝 인덱스)import java.lang.String
String str = bufferedReader.readLine();
String subStr = str.substring(3,4); //str 3번 인덱스 한글자만 문자열로 저장
char A[] = str.subString(3,4).toCharArray; //str 3번 인덱스 한글자만 배열에 저장
substring() 함수는 문자열을 지정한 범위까지 잘라서 반환하는 String 함수다.
substring() 함수는 java.lang.String 패키지에 있으며 사용하려면 import java.lang.String로 임포트 시켜 사용할 수 있으나 IDE에 따라 위 패키지를 임포트 하지 않아도 된다.
substring()은 시작 값을 넣어주고 종료 인덱스를 넣어주지 않으면 시작 인덱스부터 str끝까지 문자열로 반환한다.
String str = "햇빛이 선명하게 나뭇잎을 핥고 있었다"
String subStr = str.substring(10);
위 코드를 실행하면 str의 10번째 '뭇'부터 str 끝까지 subStr변수에 String 형태로 담기게 된다.

여기서 str 내용은 변형되거나 추가되지는 않는다.
💡잠깐!, 음수, 범위 외 인덱스를 지정한 경우
음수나 범위 외의 인덱스를 지정한 경우 컴파일 과정에서 컴파일러는 인덱스 범위가 초과했다는
StringIndexOutOfBoundsException오류 메세지를 보내며 프로그램을 종료시킨다.
substring()은 시작값과 함께 종료값을 넣어주면 해당 범위까지 문자열을 잘라 반환한다.
String str = "햇빛이 선명하게 나뭇잎을 핥고 있었다"
String subStr = str.substring(14, 16);
위 코드를 실행하면 str의 14번째 '핥'부터 16번 인덱스 전까지인 '고'인 "핥고"가 subStr에 반환된다.

💡잠깐!, 반환값을 문자 배열로 받고싶을 때
substring()함수는 문자열로 반환되기 때문에 문자열을 문자 배열로 변환시키는 함수
toCharArray()함수를 사용하면 된다.String str = "햇빛이 선명하게 나뭇잎을 핥고 있었다" char[] charArray = str.substring(14, 16).toCharArray;