2012-10-25 2 views
2

구분 기호이 코드를 사용하고 있습니다 :문자열 토큰 화,

StringTokenizer tokenizer=new StringTokenizer(line, "::"); 

는 다음과 같은 문자열을 분할 :

hi my name is visghal:: what is yor name name:: being thw simple my::: what is yor name name. 

가 지금은 구분 기호로 ::를 사용하여 문자열을 분할 할. 잘 작동합니다. 그러나 :::도 고려하고 있습니다. 즉

내가 원하는 :

hi my name is visghal 
what is yor name name 
being thw simple my 
: what is yor name name 

를 대신 다음 나에게주고있다 : 그것은 동일 :::::를 취하고있다

being thw simple my 
what is yor name name 
hi my name is visghal 

. 이것을 피할 수있는 방법이 있습니까?

+0

StringTokenizer는 더 이상 사용되지 않습니다. – Bozho

답변

6

당신은 다음과 같은 문자열 # 분할을 사용할 수 있습니다

String[] arr = str.split("::"); 

편집 :

String[] arr = str.split("::\\s*"); // for stripping spaces after :: 

출력 :

hi my name is visghal 
what is yor name name 
being thw simple my 
: what is yor name name 
2

시도 구아바의 Splitter 경우 String.split 이상의 추가 기능이 필요합니다. 빈 줄을 잘라내거나 생략 할 수 있습니다.

String myInput = "..."; 
Iterable<String> parts = Splitter.on("::").split(myInput); 
0

그것은 복용 :: 및 ::: 같은

없음으로, 당신의 분리 문자 ::이 문자열 부분 :::에 두 번 발견이 당신의 결과에 대한 설명입니다.

split("::") 메서드를 사용해야합니다.