2016-08-09 3 views
1

나는 두 문자열이자바 문자열를 단락 정규식

String myarray[] = input.split("\\s*(->|:|\\s)\\s*"); 

내가 문자열 하나가 작동하고, 그 결과를 테스트 장치입니다 괜찮아요 날 정확히 배열에 3 반환하지만 두 번째 문자열 2 그것은 배열의 빈 공간을 반환합니다.

내가 뭘 잘못하고 있니? 도와주세요. 즉 [A-Z0-9]+ -

감사


문자열이 반환 배열의 3 개 요소는 [ 'D', 'C']

+0

문자열 2의 반환 값은 무엇입니까? 어떤 공간을 캡처하고 있습니까? – cxw

+0

'[A-Z \\ d] +'......... –

+0

@cxw 나는 나의 질문을 편집했다. 봐주세요. – Maverick

답변

3

당신은 수도와 숫자를 원한다.

String myarray[] = input.replaceAll("^[^A-Z0-9]+|[^A-Z0-9]+$", "").split("[^A-Z0-9]+"); 

BTW 게시 된 코드가 [D, C]

, [route, D, C]하지 생산할 것이다 : 같이, 다음, [^A-Z0-9]+을 즉 일치하지 않는 문자에 분할 - 가장 간단한 방법은 모든 주요와 일치하지 않는 문자를 후행 제거하는 것입니다
0

다음과 같이하십시오 :

String myarray[] = two.split("\\s*(->|:)\\s*"); 

당신은 일치하지 않는 차를 처리하기 위해 별도의 로직을 작성해야합니다 이 경우에는 "라우트"를 좋아합니다.