[Java] 문자열 자르기 - substring

2020. 12. 12. 22:48Java

Java 기본으로 제공하는 String 클래스에 편리한 기능들이 많이 들어있습니다.

그 중 하나가 문자열을 자를 때 사용하는 substring입니다.

(split, StringTokenizer, 정규표현식을 활용한 여러 가지 방법이 있는데 차차 알아보도록 하겠습니다.)

 

문자열은 기본적으로 문자(char) 여러 개가 배열(char[])로 합쳐진 형태입니다.

즉, ABCDEFGH는 알파벳 8개이므로 배열 8칸에 들어가있는 형태이며 index를 이용하여 액세스할 수 있습니다.

문자배열 A B C D E F G H
Index 0 1 2 3 4 5 6 7

 

Java API

substring API는 2가지 형태로 제공되고 있다.

String substring(int beginIndex)

/*
파라미터:
  beginIndex - 기존 문자열에서 시작index부터 문자열 끝까지 추출하여 자른다.
*/

 

String substring(int beginIndex, int endIndex)

/*
파라미터:
  beginIndex - 기존 문자열에서 자르기 시작하는 시작Index
  endIndex - 기존 문자열에서 자르기가 끝나는 종료Index
*/

 

사용법

위 2개의 API를 이해하기 위한 간단한 예제입니다.

String str = "ABCDEF";

System.out.println(str.substring(3));
// index 3부터 문자열 끝까지 
// 출력 : DEF

System.out.println(str.substring(3, 6));
// index 3부터 6까지
// 출력 : DEF

System.out.println(str.substring(3, str.length()));
// index 3부터 문자열 길이까지 
// 출력 : DEF

눈치 채신 분들도 계시겠지만 모두 동일한 출력값으로 index 3~6 범위의 문자열을 자르는 예제입니다.

 

자주 사용하는 활용예제

일시는 자주 사용하는 문자열입니다.

Date형으로 변환하지 않고 년, 월, 일, 시, 분만 따로 쓰는 경우가 있습니다.

String date = "2020-12-16 10:30:43";
System.out.println("년 : " + date.substring(0, 4));
System.out.println("월 : " + date.substring(5, 7));
System.out.println("일 : " + date.substring(8, 10));
System.out.println("시 : " + date.substring(11, 13));
System.out.println("분 : " + date.substring(14, 16));
System.out.println("초 : " + date.substring(17));
System.out.println("월일 : " + date.substring(5, 10));
System.out.println("시분 : " + date.substring(11, 16));

// 출력결과
년 : 2020
월 : 12
일 : 16
시 : 10
분 : 30
초 : 43
월일 : 12-16
시분 : 10:30

 

substring은 index를 알고 있는 상황에서 간단하게 문자열을 자를 수 있는 API입니다.

다음 글에서 split으로 문자열을 자르는 내용을 다루도록 하겠습니다.

 

관련글:

2020/12/16 - [Java] - [Java] 문자열 자르기 - split

 

[Java] 문자열 자르기 - split

지난 시간에는 index를 지정하여 문자열을 자르는 substring을 알아보았습니다. 이번 시간에는 특정 문자를 지정하여 여러 개의 문자열로 자르는 split을 알아보도록 하겠습니다. 문자열 사과, 배, 귤

smartpro.tistory.com

 

 

반응형