gpt4 book ai didi

java - 为什么我的 arrayList 只添加来自 StringTokenizer 的最后一个标记?

转载 作者:行者123 更新时间:2023-12-03 22:52:38 25 4
gpt4 key购买 nike

这段代码是我写的

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;
}

Sysout 正确显示了每个标记,但是当我随后迭代 arrayList 或检查它的大小时,显示 1(应该是 2)并且只显示最新添加的标记。

为什么会这样???

谢谢。

最佳答案

您将在 for 循环的每次迭代中创建一个新的 ArrayList

动以下语句:

tokens = new ArrayList<String>();

在 for 循环之外。或者只是在声明的地方初始化 tokens,而不是将其初始化为 null

关于java - 为什么我的 arrayList 只添加来自 StringTokenizer 的最后一个标记?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17733312/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com