2014-04-04 3 views
-1

나는 따옴표가 포함 된 문자열을 토큰 화하려고합니다. StringTokenizer 클래스를 검색하여 찾았습니다. 그러나 그것은 나를 위해 일하지 않았다. 다음은 사용자가 입력 할 것으로 기대되는 문자열의 예입니다.따옴표로 문자열을 토큰하는 방법? Java에서

dgdfgg ddfgdf 4 12 assdsd “michael smith” “michael Westley” “Michael Fotky” 

문제는 tokenizer 토큰 화입니다. 그러나 보시다시피 따옴표가 있고 나는 그들이 함께 머물러 있기를 바랍니다. 처럼 "michael Westley"은 토큰으로 함께 있어야합니다. "michaelWestley"과 같지 않음. 나는 str.nextToken()+str.nextToken()를 사용할 수 있지만 따옴표 안에있는 문자열이 한 단어 또는 두 단어가 될지 여부는 알지 못합니다. 한 단어라면 문제가 될 수 있습니다. 다음은 내가 원하는 것의 예입니다.

dgdfgg 
ddfgdf 
4 
12 
assdsd 
“michael smith” 
“michael Westley” 
“Michael Fotky” 

감사합니다.

+1

체크 도와 희망을 [사항 String.split()] (http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#split (java.lang.String) ... – jahroy

답변

1

우아한 것을 원하면 정규 표현식을 찾아야합니다. 그러나 빨리 할 당신은 당신의 출력을 확인하고 예를 들어 ' "'사이 포함하여 문자열을 연결합니다 수 있습니다.

String token = str.nextToken(); 
if(token.charAt(0) == '"' && token.charAt(token.length()-1) != '"') { 
String tmp = str.nexToken(); 
while(tmp.charAt(tmp.length()-1) != '"') { 
    token += tmp; 
    tmp = str.nextToken(); 
} 
} 
// do something with token 
... 

그것이