subString, subSequence란?
자바 String의 subString, subSequence는 문자열을 원하는 길이만큼 잘라서 새로운 부분 문자열을 만들어주는 메소드입니다.
Java String subString 메소드 공식 문서
subString(int beginIndex, int endIndex)
문자열을 시작 인덱스부터 끝 인덱스만큼 자른 문자열을 반환합니다.
String s = "abcdefghijklmnop";
System.out.println(s.substring(10));
System.out.println(s.substring(7, 10));
subString을 사용한 두 번째 코드에서 beginIndex = 7이고 endIndex = 10이 매개변수로 들어갔습니다.
7번째는 h, 10번째는 k이지만 결과는 hij가 반환되었습니다.
endIndex는 포함되지 않았습니다.
실제 subString로직은 endIndex - beginIndex를 뺀 값만큼의 길이로 자른 문자열을 반환합니다.
10 - 7 = 3이기 때문에 hij 3개의 문자가 반환되었습니다.
subSequence(int beginIndex, int endIndex)
이 메서드도 문자열을 자르는 건 동일합니다.
다만 반환 클래스가 CharSequence라는 차이가 있습니다.
String s = "abcdefghijklmnop";
System.out.println(s.subSequence(2, 5));
반환값은 CharSequence이지만 결과값의 클래스를 조회해 보면 String이라고 나옵니다.
StringBuilder나 StringBuffer처럼 CharSequence를 구현한 클래스들이 존재하는데 그 클래스들과 연계하여 사용할 수 있을 것 같습니다.
아직 subSequence를 사용하는 코드는 본 적이 없지만, subString은 정말 많이 사용하기 때문에 알아두면 유용하게 쓸 수 있습니다.
읽으면 좋은 글
[Java] String - split() 문자열 자르기, 문자열 배열 변환