如何使用引号对字符串进行标记?在Java中

时间:2014-04-04 15:12:07

标签: java quotes tokenize

我正在尝试对包含引号的字符串进行标记。我搜索并找到了StringTokenizer类。但它对我没有用。以下是我希望用户输入的字符串示例:

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

问题是令牌化器标记单词。但正如你所看到的那样有引号,我希望它们能够在一起。像“michael Westley”应该作为一个代币保持在一起。不喜欢“michael Westley”。我可以使用str.nextToken()+str.nextToken()但是我不知道引号内的字符串是一个字还是两个字。如果它是一个字,那可能是个问题。这是我想要的一个例子:

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

提前致谢。

1 个答案:

答案 0 :(得分: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
...

希望有所帮助