我不知道爲什麼我這麼苦苦掙扎,但任何幫助將不勝感激。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