JAVA

JAVA 문자열 자르기 2 (substring 사용법)

Ambitions 2020. 6. 2. 16:42

문자열을 잘라서 사용하는 방법에는 여러가지가 있지만, 그 중에서 접근성이 높은건 Split이나 substring이 아닐까 싶다.

저번글에서는 split을 정리했으니까, 오늘은 substring을 정리해보고자 한다.

 

일단 API문서에는 substirng이 이렇게 정리되어있다.

 substring

대충 String을 받아서 String을 리턴한다고 설명하는 것 같다.

글로 보는것보다는 코드로 보는게 빠를 것 같아서 간단한 예제 소스를 준비했다. 예제소스는 다음과 같다.

1
2
3
4
5
6
7
8
9
10
11
public void subStr() {
    String time = "2020-05-01 23:59:59";
    //substring의 첫 번째 인자는 시작점, 두 번쨰 인자는 종점(마지막) 입니다.
    String result = time.substring(0,10); // time문자열에서 0번쨰부터 10번쨰까지의 문자를 가져와라.
    System.out.println(result); // 결과 => 2020-05-01
    System.out.println(time.substring(0)); // 0번쨰 부터 끝까지 가져와라. => 결과는 2020-05-21 23:59:59
 
    //응용
    String result2 = time.replace("-""").substring(0,8); // "-"을 공백으로 바꾸고 0번째부터 8번쨰까지 문자열을 가져와라.
    System.out.println(result2); // 결과 => 20200501
}
cs

위와같이 replace와 함께 응용해서 사용할 수 있고, 여러가지 방법이 있는데, 사용하면서 한 가지 주의해야할 점이있다.

바로 다음과 같은 경우다.

1
2
String str = "대한민국"
System.out.println(str.substring(0,5)); // 대한민국이라는 글자는 4글자인데 5글자를 사용하면?
cs

위와 같이 endIndex(종점)을 대상문자열의 길이보다 크게 줬을 때는 StringIndexOutOfBoundsException 이 발생하게 된다. 위와 같은 상황을 방지하기 위해서는 substring의 인자값을 가변적으로 주도록 구성하거나, 대상 문자열의 형식이 날짜처럼 고정되어있는 경우에만 사용해야 한다.

 

오늘정리는 여기까지이며, 문자열관련 메소드들은 많이 알아도 부족함이 없다고 생각한다.

앞으로 문자열관련 메소드들을 적재적소에 잘 쓸 수 있도록 해야겠다.