msq*_*qar 2 java token tokenize
我做了这个代码
private static List<String> rebuildURLWithComplexValues(String url) {
List<String> tokens = null;
if(url != null && url.length() > 0) {
if(url.contains("flowVars")) {
String[] firstSplit = url.split("\\[");
for (int i = 0; i < firstSplit.length; i++) {
if(firstSplit[i].contains("'")) {
StringTokenizer st = new StringTokenizer(firstSplit[i], "\'");
tokens = new ArrayList<String>();
String token = st.nextToken();
System.out.println(token);
tokens.add(token);
}
}
return tokens;
}
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
Sysout正确地显示每个令牌,但是当我然后迭代arrayList或检查它的大小时,说1(应该是2)并且仅显示添加的最新令牌.
为什么会这样?
谢谢.
您正在ArrayListfor循环的每次迭代中创建一个新的.
移动以下语句:
tokens = new ArrayList<String>();
Run Code Online (Sandbox Code Playgroud)
在for循环之外.或者只是tokens在声明的地方初始化,而不是初始化它null.
| 归档时间: |
|
| 查看次数: |
912 次 |
| 最近记录: |