Java

[JAVA] 구분자를 통한 문자열 나누기 [펌]

SojuMan 2011. 5. 19. 16:19
탭 문자 (Tab키를 누르면 찍히는 긴 공백 문자)로 구분된 문자열을 배열로 나누려면, split 메소드(함수)로

split("\t")

이렇게 하면 됩니다. \t 가 탭문자를 의미합니다. 물론 탭 문자 자체를 그냥 적어 주어도 됩니다.

그런데 마침표로 구분된 문자열을 나눌 때

split("\.") 이렇게 하면

illegal escape character (잘못된 이스케이프 문자가 사용되었음) 라는 에러가 납니다.

따라서 split("\\.") 이렇게 백슬래쉬를 이중으로 해주어야 합니다.

split()은 "구분자 문자열"을 정규식으로서 입력받는데, 정규식에서 점(.)은 "불특정 문자 1개"라는 의미를 가지기에, 점을 점 그대로 사용하기 위해서는 자바에서는 백슬래쉬(\) 2개를 붙여야 합니다.


split: Tab(탭 문자) / 마침표 분리자 사용 예제
소스 파일명: Foo.java

class Foo {
  public static void main(String[] args) {
    String s;
    String[] array;

    //////////////////////////////////////////////////
    // 탭 문자(Tab)로 구분된 문자열 분해

    // HTML에서는 탭문자 표현이 곤란하기에
    // 아래 예제에서 탭문자를 [TAB] 이렇게 표현했는데
    // 예제 실행시에는 진짜 탭문자로 바꾸어 주어야 합니다.

    s = "자장면[TAB]탕수육[TAB]짬뽕[TAB]칼국수";
    array = s.split("\t");
    dumpArray(array);

/* 출력 결과:
array[0] = 자장면
array[1] = 탕수육
array[2] = 짬뽕
array[3] = 칼국수
*/

    //////////////////////////////////////////////////
    // 마침표(.)로 구분된 문자열 분해
    s = "철수.영희.맹구.배영만";
    array = s.split("\\.");
    dumpArray(array);

/* 출력 결과:
array[0] = 철수
array[1] = 영희
array[2] = 맹구
array[3] = 배영만
*/
  }


  // 배열을 화면에, 요소별로 알기 쉽게 출력
  public static void dumpArray(String[] array) {
    for (int i = 0; i < array.length; i++)
      System.out.format("array[%d] = %s%n", i, array[i]);
  }
}