2016-09-20 4 views
1

다음 두 가지 예제를 살펴보십시오. 어떻게 2 번째가 4를 또한 인쇄하는지 확인하는 방법?마지막 빈 요소를 계산하지 않는 String.split

String s="a|b|c|d" 
println(s.split("\\|").length) 
//prints 4 

s="a|b||"​​​​​​​​​​​​ 
println(s.split("\\|").length)​ 
//prints 2 
+0

StringUtils에 합법적 인 경우 수행에 println (StringUtils.countOccurrencesOf (들, "\\ |") + 1); –

+0

이것이 투표 다운 이유를 알 수 있습니까? –

답변

2

는 빈 토큰을 유지하는 한도 분할을 사용하려면 = -1

println(s.split("\\|", -1).length)​ 
-2

스플릿에서는 반복 할 때 null 값을 허용하지 않습니다. 그래서 다음 코드가 작동합니다.

int counter = 0; 
    for(int i = 0 ; i < s.length();i++) 
    { 
     if(s.charAt(i) == '|') 
     { 
      counter++; 

     } 
    } 
    System.out.println(counter); 
+0

3 | 질문이 4를 원할 때 3을 말하지 않습니까? 더 나은 int 카운터 = 1? –

+1

이 질문은 문자열에서'|'문자의 수를 세지 않고'String.split'과 관련이 있습니다. –

관련 문제