2012-01-19 2 views
1

"." (포인트) 및 " " (스페이스)에 분할되어야하는 문자열이 있습니다. "123 456 . 11323 1" - 그것은 일반적으로이 문자열을 분할하지 않았기 때문에,정규 표현식을 사용하여 문자열을 어떻게 분할해야합니까?

s.split("[\\s\\.]") 

그러나 그것은 작동하지 않습니다 나는 노력했다.

정규식을 어떻게 변경해야합니까?

+0

무엇을 얻었습니까? –

+1

만약 당신이 입출력 예제를 줄 수 있다면, 질문이 조금 더 명확해질 것입니다. –

답변

1

한 문자로만 나눌 경우 많은 공백이 생깁니다.

s.split("[\\s\\.]+") 

은 "123", "456", "11323", "1"을 생성합니다.

+은 인접한 공백과 점 사이에서 문자열을 반환하는 대신 단일 공백으로 점을 처리합니다.

" 123" 문자열의 시작 부분과 "123"사이에 공백이 있기 때문에 결과의 양쪽 끝에 빈 문자열이 계속 표시 될 수 있습니다.

2

"[\\s.]+"을 정규식으로 사용하기 만하면됩니다.

s.split("[\\s\\.]+"); 

참고 + :

3

나는 당신이 원하는 것은 이것이다, 생각합니다. 공백 또는 점들의 매번 (!) 발생을 나누기를 원하지 않는 것처럼 보입니다. 공백이나 점의 모든 조합을 일치 시키려합니다. 그렇기 때문에 가능한 한 많은 성냥을 탐험해야합니다.

관련 문제