【发布时间】:2016-02-27 22:16:05
【问题描述】:
给定一个字符串
abc=1&b=2&fa=_
我需要拆分它以获得一个令牌数组:
["abc", "=", "1", "&", "b", "=", "2", "&", "fa", "=" , "_"]
我的代码:
public String[] getTokens(String input) {
List<String> list = new ArrayList<>();
String[] splitted = input.split("&");
for (int k = 0, splittedLength = splitted.length; k < splittedLength; k++) {
String part = splitted[k];
String[] kv = part.split("=");
for (int i = 0, kvLength = kv.length; i < kvLength; i++) {
String elem = kv[i];
list.add(elem);
if (i < kvLength - 1) {
list.add("=");
}
}
if (k < splittedLength - 1){
list.add("&");
}
}
return list.toArray(new String[list.size()]);
}
我还需要考虑我的键不能有值 (a=) 的情况,在这种情况下,我应该为我的键设置一个默认值 - 一个空字符串 (a="")。
我该怎么做?
【问题讨论】:
-
这取决于您对令牌的定义。
-
参见stackoverflow.com/questions/11733500/…,例如从 URL 查询字符串中获取地图。
标签: java