2017-09-03 2 views
2

빈 문자열을 분할 한 후 1 개의 요소 배열을 얻습니다. 분리 기호/분리 기호 (예 : 분리 (\ W)가 제거 할 특수 문자 만), 0 개의 요소 배열이 생깁니 까?빈 문자열에서 split()을 호출하지 않고 분리 문자로만 구성된 문자열을 다른 크기의 배열로 가져 오는 이유

둘 다 빈 토큰으로 이어 지므로 확실하게 동일한 길이의 배열을 가질 수 있습니까? 하지만 왜 안 되니?

+0

관련 : https://stackoverflow.com/questions/14414582/java-split-string-to-array –

답변

3

분할 가지고 있기 때문에 두 경우 : 일치하는 항목이없는 경우

  1. , 예를 들어, new String[] { this }을 반환 :

    "1111".split(",") // {"1111"} 
    " ".split(",") // {" "} 
    "".split(",") // {""} 
    
  2. 이 일치가 발견, new String[resultSegmentCount]을 반환 할 때 resultSegmentCount = 0을 위해 예 :

    " , ".split(",") // {" ", " "} 
    " ,".split(",") // {" "} 
    ", ".split(",") // {" "} 
    ",".split(",") // {} 
    
+0

'String.split (String, int)'메소드의 현재 소스 코드를 볼 수 있습니다 [at grepcode] (http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/8u40-b25/java/lang/String.java#String.split%28java.lang.String%2Cint%29). 'String.split (String)'은 단순히 정수 인수 0을 사용하여'String.split (String, int)'를 호출합니다. – Bobulous