쉼표, 세미콜론 또는 공백 (또는 세 가지 조합)으로 입력 문자열을 분할 할 수 있어야합니다. 입력에서 여러 개의 연속 된 구분 기호를 하나의 구분 기호로 취급하고 싶습니다. 여기에 지금까지이 작업은 다음과 같습니다String.split() - 첫 번째 구분 기호 앞에 빈 빈 문자열이 일치합니까?
String regex = "[,;\\s]+";
return input.split(regex);
이 입력 문자열이 결과 배열의 첫 번째 요소가 빈 문자열 인 경우, 구분 문자 중 하나를 시작할 때를 제외하고 작동합니다. 내 결과에 빈 문자열이있는 것을 원하지 않으므로 ",,,, ZERO;, ;; ONE, TWO;"는 대문자로 된 문자열을 포함하는 세 요소 배열 만 반환합니다.
String.split을 호출하기 전에 내 reg-ex와 일치하는 선행 문자를 제거하는 것보다 더 좋은 방법이 있습니까?
미리 감사드립니다.
Java 정규식 API를 기억하지 못해 답변으로 게시하지 않지만 단순히 구분 기호로 구분하는 대신 구분 기호가 아닌 문자열을 검색 할 수 있습니다. '[^,; \ s] +'와 같은 정규 표현식을 사용합니다. –
분명히 똑같은 질문이지만 최신이지만 답변이 더 좋음 : https://stackoverflow.com/questions/9389503/how-to-prevent-java-lang-string-split-from-creating-a-lead-empty-string –