我做了一个不能按预期工作的for循环。请参阅代码:
for (int i = 0; i < result.size(); i++) {
s = s + "k";
for (int ii = 0; ii < result.get(0).size(); ii++) {
s = s + "\n";
s = s + result.get(i).get(ii)[0];
}
}
result.get(i).get(ii)[0]
应输出一个成功输出的字符串,但问题是字符串s
每次应包含&#34; k&#34; 在添加三个字符串之前,所以它应该是:
kString1
String2
String3
kString1
String2
String3
我只在字符串前一次获得&#34; k&#34; 。我知道i
的值正在更新,因为result.get(i)
正在使用更新的i
给出结果。
解释result.get(i).get(ii)[0]
:
s
是一个String,结果是ArrayList< ArrayList< String[]>>
,这意味着它包含ArrayList< String[]>
个对象和'ArrayList&lt;的每个对象。串[]&GT;是一个String数组。
编辑:我现在正在添加我得到的输出:
k
United King
["bakery","store","food","establishment"]
0
Oven Fresh Bakery
["bakery","store","food","establishment"]
1
5 Star CNG Pump Station
["gas_station","establishment"]
2
应该有一个&#34; k&#34;在0,1和2之后。
答案 0 :(得分:2)
您的嵌套循环条件似乎不正确,
for (int ii = 0; ii < result.get(0).size(); ii++) {
应该是
for (int ii = 0; ii < result.get(i).size(); ii++) {
修改(根据您的评论和编辑,下次 - 请加入Short, Self Contained, Correct (Compilable), Example以获得更快的帮助)
ArrayList<ArrayList<String[]>> result = new ArrayList<ArrayList<String[]>>();
StringBuilder sb = new StringBuilder();
ArrayList<String[]> t = new ArrayList<String[]>();
t.add(new String[] { "String1" });
t.add(new String[] { "String2" });
t.add(new String[] { "String3" });
result.add(t);
result.add(t);
for (int i = 0; i < result.size(); i++) {
for (int ii = 0; ii < result.get(i).size(); ii++) {
if (i != 0 || ii != 0) {
sb.append("\n");
}
if (ii == 0) {
sb.append("k");
}
sb.append(result.get(i).get(ii)[0]);
}
}
System.out.println(sb.toString());
输出
kString1
String2
String3
kString1
String2
String3