[Java] String split method limit 이용

반응형

String split method에서 limit 값을 이용해 결과 배열의 길이를 제어하는 방법에 대해 알아보자.

 

Syntax

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

Params

  • regex − the delimiting regular expression.
  • limit − the result threshold, which means how many strings to be returned.

Return value

  • the array of strings computed by splitting this string around matches of the given regular expression

 

예시

limit이 0인 경우, 0보다 큰 경우, 0보다 작은 경우에 따라 결과가 달라진다.

각각 알아보자.

 

limit = 0

String target = "1-2-3--5-6---";
System.out.println(Arrays.toString(target.split("-", 0)));

limit이 0 인 경우는 그냥 split(String regex) method를 호출하는 것과 같다.

split(String regex)가 어차피 0 값을 넣어서 호출하기 때문에 target.split("-") 과 동일하다

public String[] split(String regex) {
	  return split(regex, 0);
}

결과

[1, 2, 3, , 5, 6]

결과를 보면 알겠지만 맨 뒤에 값이 빈 값이면 생략한 것을 알 수 있다.

split(String regex, int limit)에서 limit 이 0인 경우

결과에 빈 값이 존재하면 제거하는 코드가 있기 때문에 그렇다.

 

만약 빈 값이 필요하다면 limit를 0보다 작은 값을 주면 됩니다.

 

 

limit > 0

String target = "1-2-3--5-6---";
System.out.println(Arrays.toString(target.split("-", 5)));

결과

[1, 2, 3, , 5-6---]

 

 

limit < 0

String target = "1-2-3--5-6---";
System.out.println(Arrays.toString(target.split("-", -1)));

결과

[1, 2, 3, , 5, 6, , , ]