我不知道为什么我这么苦苦挣扎,但任何帮助将不胜感激。Java Tokenizer,分隔字符串
我正在创建自己的标记器,它接收带有命令,分隔符和值列表的文件。然后它输出每个“标记”以及它是什么类型。
输入:AND 3, 4, 5 ; some comments
我需要输出:
AND --- command
3 --- value
, --- delimiter
4 --- value
, --- delimiter
5 --- value
我现在它的工作的地方,我输出:
AND 3, 4, 5 --- delimiter
,但我需要进一步打破它。
这里就是我在目前:
ArrayList<Token> tokenize(String[] input) {
ArrayList<Token> tokens = new ArrayList<Token>();
for (String str : input) {
Token token = new Token(str.trim());
//Check if int
try{
Integer.parseInt(str);
token.type = "number";
} catch(NumberFormatException e) {
}
if (token.type == null) {
if (commands.contains(str))
token.type = "command";
else if (str.contains(",")) {
token.type = "delimiter";
} else if (destValues.contains(str))
token.type = "destination";
else
token.type = "unknown";
}
if(! token.type.equals("unknown"))
tokens.add(token);
}
return tokens;
}
只有真正的限制,我有这个任务不能够使用的StringTokenizer和正则表达式。
你可以使用String.split(),或者你需要手动标记你的字符串吗? – davidbuzatto
我能够使用split(),但是我怎样才能拆分它来摆脱空间,但保留逗号? – btjordan23
您的输入是否已被分割?你想改善什么? – davidbuzatto