[java] String - split() 사용법

반응형

 

1. 문자열을 자르는 메소드 split()

문자열 String 을 특정 문자로 자를때 사용할 수 있는 메소드가 split() 이다.

공백으로 문자열을 자를때, split(" ") 으로 자르면 되지만, 문자열이 끝나고 마지막에 붙는 공백은 얻어지지 않는다.

 

파라미터로 -1을 추가하는 것의 큰 차이는 문자열이 공백으로 끝날때의 공백을 취득하냐 여부이다.

마지막 공백갯수도 취득해야할 때는 split() 메소드에 파라미터로 -1을 주면 된다.

 

2. String.split(" ") vs String.split(" ", -1)

public static void main(String[] args) {
    /** 공백 1개로 시작하고 끝나는 문자열 */
    String str = " 안녕하세요  문자열을   split()메소드로 잘라보겠습니다 ";

    // split(" ") 으로 자르는 경우
    String[] strings1 = str.split(" ");
    System.out.println("===== str.split(\" \") =====");
    System.out.println(Arrays.toString(strings1));

    System.out.println();

    // split(" ", -1) 으로 자르는 경우
    System.out.println("===== str.split(\" \", -1) =====");
    String[] strings2 = str.split(" ", -1);
    System.out.println(Arrays.toString(strings2));
    
    System.out.println();

    /** 공백 2개로 시작하고 끝는 문자열 */
    String str2 = "  공백2개로 시작하는  문자열을   split()메소드로 잘라보겠습니다  ";
    String[] strings3 = str2.split(" ");
    System.out.println("===== str.split(\" \") =====");
    System.out.println(Arrays.toString(strings3));

    System.out.println();

    System.out.println("===== str.split(\" \", -1) =====");
    String[] strings4 = str2.split(" ", -1);
    System.out.println(Arrays.toString(strings4));
}

출력결과

===== str1.split(" ") =====
[, 안녕하세요, , 문자열을, , , split()메소드로, 잘라보겠습니다]

===== str1.split(" ", -1) =====
[, 안녕하세요, , 문자열을, , , split()메소드로, 잘라보겠습니다, ]

===== str2.split(" ") =====
[, , 공백2개로, 시작하는, , 문자열을, , , split()메소드로, 잘라보겠습니다]

===== str2.split(" ", -1) =====
[, , 공백2개로, 시작하는, , 문자열을, , , split()메소드로, 잘라보겠습니다, , ]
  1. 공백 1개로 시작하고, 공백 1개로 끝나는 문자열
    " 안녕하세요  문자열을   split()메소드로 잘라보겠습니다 "
  2. 공백 2개로 시작하고, 공백 2개로 끝나는 문자열
    "  공백2개로 시작하는  문자열을   split()메소드로 잘라보겠습니다  "

 

(1) split(" ") 결과

  1. 기본적으로 문자열 사이의 공백으로 잘라진다.
    1. 문자열 사이에 공백이 1개 : split()메소드로, 잘라보겠습니다
    2. 문자열 사이에 공백이 2개 : 안녕하세요, (공백), 문자열을
  2. 공백으로 시작하는 경우, 공백의 갯수대로 잘라진다.
    1. 공백 1개로 시작 : (공백), 안녕하세요
    2. 공백 2개로 시작 : (공백), (공백), 공백2개로
  3. 공백으로 끝나는 경우, 무시된다
    1. 공백 1개로 시작하고, 공백 1개로 끝나는 문자열
      ["", "안녕하세요", "", "문자열을", "", "", "split()메소드로", "잘라보겠습니다"]
    2. 공백 2개로 시작하고, 공백 2개로 끝나는 문자열
      ["", "", "공백2개로", "시작하는", "", "문자열을", "", "", "split()메소드로", "잘라보겠습니다"]

 

(2) split(" ", -1) 결과

  1. 기본적으로 문자열 사이의 공백으로 잘라진다.
    1. 문자열 사이에 공백이 1개 : split()메소드로, 잘라보겠습니다
    2. 문자열 사이에 공백이 2개 : 안녕하세요, (공백), 문자열을
  2. 공백으로 시작하는 경우, 공백의 갯수대로 잘라진다.
    1. 공백 1개로 시작 : (공백), 안녕하세요
    2. 공백 2개로 시작 : (공백), (공백), 공백2개로
  3. 공백으로 끝나는 경우, 공백 갯수가 취득된다
    1. 공백 1개로 시작하고, 공백 1개로 끝나는 문자열
      ["", "안녕하세요", "", "문자열을", "", "", "split()메소드로", "잘라보겠습니다", ""]
    2. 공백 2개로 시작하고, 공백 2개로 끝나는 문자열
      ["", "", "공백2개로", "시작하는", "", "문자열을", "", "", "split()메소드로", "잘라보겠습니다", "", ""]

 

 

반응형