반응형
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, , , ]
반응형