본문 바로가기
Language/JAVA

[JAVA] 자바_split (문자열 자르기)

by 썸머워즈 2019. 6. 10.
반응형

- split을 이용한 문자열 자르기 -


split()

String[] split(String regex)

- String[] split(String regex, int limit)

split() 함수는 입력받은 정규표현식 또는 특정 문자를 기준으로 문자열을 나누어 배열에 저장하여 리턴한다.


예제 1) String[] split(String regex)

public class SplitTest{

    public static void main(String[] args){

        String str1 = "my-java-test";
        String[] splitTest = str1.split("-");
        System.out.println( splitTest[0] );  // my
        System.out.println( splitTest[1] );  // java
        System.out.println( splitTest[2] );  // test
        
    }

}

 

split 에 입력받은 특정 문자 "-"를 기준으로 나뉘어져 my / java / test 이렇게 세 개로 나뉘어 배열에 저장되었다.

 

예제 2) String[] split(String regex, int limit)

public class SplitTest{

    public static void main(String[] args){

        String str2 = "my,java,test";
        String[] splitTest = str2.split("," , 2);
        System.out.println( splitTest[0] );  // my
        System.out.println( splitTest[1] );  // java,test

    }

}

 

이번 예제에서는 두 번째 인자 값을 추가로 넣어주었는데 두 번째 인자 값이 의미하는 것은 배열의 크기를 지정하는 것이다.

무슨 소리냐면 원래대로라면 예제 1)처럼 배열의 크기가 3으로 각각 [my, java, test] 이렇게 들어갔어야 하는 게

 

배열의 크기를 2로 지정하였으므로 배열의 크기가 2인 배열 즉 두 개의 값만 들어가게 설정해놓은 것이다.

쉼표를 기준으로 분리되면 ['my', 'java, test']로 두 개가 들어가는 것이다.

 

 

마지막으로 실수를 많이 하고 난 왜 안 되는 거지? 하라는 데로 했는데 같은 의문을 가질 수 있는 예제를 보자면

 

예제 3) 메타 문자 기준 문자열 자르기

public class SplitTest{

    public static void main(String[] args){

        String str3 = "my.java.test";
        String[] splitTest = str3.split(".");
        System.out.println( splitTest[0] ); //
        System.out.println( splitTest[1] ); //

    }

}

 

" . " 을 기준으로 한번 나누어 보자... 그러면 아무값도 나오지 않는데 " . " 은 다른 의미로 받아들이기 때문이다

그 외에 " ? " , " + " , " * " 등의 메타 문자는 에러가 뜰 텐데 이러한 문자들은 모두 이스케이프 처리

\\(역슬래쉬 두번)를 앞에 입력해주면 처리가 된다.

 

String str3 = "my.java.test";
String[] splitTest = str3.split("\\.",2);
System.out.println( splitTest[0] ); // my
System.out.println( splitTest[1] ); // java.test

 

이런 식으로 결과가 나올 것이다.

 

물론 이런 방식도 있지만 내가 알기론 대부분 replaceAll() 같은 것을 사용하여 전부 다른 것으로 바꿔주고 나누는 방식을 많이 사용하는 것으로 알고 있다. 

반응형


댓글

TOP