我正在尝试对包含引号的字符串进行标记。我搜索并找到了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”
提前致谢。
答案 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
...
希望有所帮助