어제 오늘 내일

[Java] 문자열 마침표(dot)로 구분하여 자르기 (split) 본문

IT/Java

[Java] 문자열 마침표(dot)로 구분하여 자르기 (split)

hi.anna 2021. 7. 12. 01:47

 

문자열을 특정 구분자로 자르기 위해서

split() 함수를 사용할 수 있습니다.

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

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

 

그런데, 문자열을 마침표('.')로 구분하여 자르기 위해

아래와 같이 코드를 작성하면 빈 배열이 리턴되는 것을 확인 할 수 있습니다.

import java.util.Arrays;

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

        String[] strArr = str.split(".");

        System.out.println(Arrays.toString(strArr));  // []
    }
}

str.split(".");

split() 메소드는 파라미터로 정규식을 입력 받는데,

정규식에서 마침표(.)는 임의의 한 문자를 의미합니다. 

 

따라서, 문자열을 마침표(.)로 구분하고 싶다면 아래와 같은 방법을 사용해야 합니다.

 

 

  마침표로 문자열 자르기 예제  

import java.util.Arrays;

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

        String[] strArr1 = str.split("[.]");
        String[] strArr2 = str.split("\\.");

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

str.split("[.]");

정규식에서 []는 문자의 집합이나 범위를 나타냅니다.

마침표(.)를 범위를 나타내는 [] 사이에 넣어서, 문자로 취급하였습니다.

 

str.split("\\.");

정규식에서 역슬래시(\) 다음에 마침표와 같은 특수문자(즉, 정규식에서 특정한 의미를 가지는 문자)가 오면

역슬래시(\) 다음에 오는 문자를 일반 문자로 취급합니다.

즉, 정규식에서 '\.'는 일반문자 마침표를 의미합니다.

그리고, Java의 문자열에서 역슬래시(\)를 표현하기 위해서는 

앞에 \를 붙여서 escape 처리를 해야합니다.

따라서, 위 예제에서는 split()의 파라미터로 "\\."를 전달하여, 

문자열을 마침표 단위로 자르도록 하였습니다.

 


문자열을 split() 메소드를 사용하여

마침표(.) 단위로 자르는 방법을 알아보았습니다.

 

 

 

반응형
Comments