어제 오늘 내일

[Java] 구분자 여러개로 문자열 자르기 (split) 본문

IT/Java

[Java] 구분자 여러개로 문자열 자르기 (split)

hi.anna 2021. 7. 11. 23:22

 

지난번에는 split() 메소드를 사용하여 문자열을 자르는 방법을 알아보았습니다.

[Java] 구분자로 문자열 자르기 (split)

이 때는, 1개의 구분자를 이용하여 문자열을 자르는 예제를 살펴보았었습니다.

이번에는 여러개의 구분자로 문자열을 자르는 예제를 소개합니다.

 

 

구분자 여러개로 문자열 자르기(split())

split() 메소드는 다음과 같이 2가지 형태로 사용할 수 있습니다.

  • public String[] split(String regex)
  • public String[] split(String regex, int limit)

split() 메소드는 파라미터로 문자열을 구분할

정규식 형태의 구분자(delimiter)를 입력받습니다.

구분자는 정규식(regular expression) 형태이기 때문에,

이 구분자에 여러개의 구분자를 표현하는 정규식을 입력해주면,

여러개의 구분자로 문자열을 자를 수 있습니다.

 

 

  예제 1.  

import java.util.Arrays;

public class SplitMultiDelimiter {
    public static void main(String[] args) {
        String str = "a@b#c%d";

        String[] strArr = str.split("@|#|%");

        System.out.println(Arrays.toString(strArr));  // [a, b, c, d]
    }
}

str.split("@|#|%");

정규식에서 '|' 기호는 or 연산을 수행합니다.

따라서, 위 코드는

'@' 또는 '#' 또는 '%' 기호를 구분자로 하여 문자열을 잘라줍니다.

 

 

  예제 2.  

import java.util.Arrays;

public class SplitMultiDelimiter {
    public static void main(String[] args) {
        String str = "a.b,c+d";

        String[] strArr = str.split("\\.|,|\\+");

        System.out.println(Arrays.toString(strArr)); // [a, b, c, d]
    }
}

str.split("\\.|,|\\+");

위 코드는 '.', ',, '+' 기호를 구분자로 하여 문자열을 잘라줍니다.

정규식에서 '.'과 '+'는 특별한 의미를 가집니다.

'.'은 임의의 한 문자를 나타내고, '+'는 앞 문자가 하나 이상인 경우를 나타냅니다.

따라서, '.'과 '+'를 단순한 문자열로 인식하여, 구분자로 사용하기 위해서

앞에 escape 문자열인 '\\'을 추가하였습니다.

 


 

여러개의 구분자로 문자열을 자르는 방법을 알아보았습니다.

 

 

반응형
Comments