IT/Java
[Java] 구분자 여러개로 문자열 자르기 (split)
hi.anna
2021. 7. 11. 23:22
지난번에는 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 문자열인 '\\'을 추가하였습니다.
여러개의 구분자로 문자열을 자르는 방법을 알아보았습니다.
반응형