Study/java

[Java] String - subString, subSequence : 문자열 자르기, 추출하기

 

subString, subSequence란?

자바 String의 subString, subSequence는 문자열을 원하는 길이만큼 잘라서 새로운 부분 문자열을 만들어주는 메소드입니다.

Java String subString 메소드 공식 문서

 

String (Java Platform SE 8 )

Compares two strings lexicographically. The comparison is based on the Unicode value of each character in the strings. The character sequence represented by this String object is compared lexicographically to the character sequence represented by the argum

docs.oracle.com

 

 

subString(int beginIndex, int endIndex)

문자열을 시작 인덱스부터 끝 인덱스만큼 자른 문자열을 반환합니다.

String s = "abcdefghijklmnop";
System.out.println(s.substring(10));
System.out.println(s.substring(7, 10));

subString 사용결과
subString 사용결과

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));

subSequence 사용결과
subSequence 사용결과

반환값은 CharSequence이지만 결과값의 클래스를 조회해 보면 String이라고 나옵니다.

 

StringBuilder나 StringBuffer처럼 CharSequence를 구현한 클래스들이 존재하는데 그 클래스들과 연계하여 사용할 수 있을 것 같습니다.

 

아직 subSequence를 사용하는 코드는 본 적이 없지만, subString은 정말 많이 사용하기 때문에 알아두면 유용하게 쓸 수 있습니다.

 

 

 

읽으면 좋은 글

[Java] String - split() 문자열 자르기, 문자열 배열 변환

 

[Java] String - split() 문자열 자르기, 문자열 배열 변환

자바의 String 클래스 split 메소드는 문자열을 구분자를 기준으로 잘라서 배열로 반환하는 메소드입니다.구분자는 특수문자나 공백같은 것도 될 수 있고, 정규식을 사용할 수도 있습니다.예제를

priming.tistory.com