gpt4 book ai didi

java - 嵌套for循环不返回外循环

转载 作者:行者123 更新时间:2023-11-30 08:35:13 25 4
gpt4 key购买 nike

我对自己编写的嵌套 for 循环有疑问。本质上,我有一个 JSON 文件,我试图将其解析为单个变量,以便我可以将这些变量添加到数据库中以供查询。

这是外循环和内循环:

for (int x = 0; x <= fixtures.length; x++) {                
String testFixture = fixtures[x];
testFixture = testFixture.replace("\"", "");
testFixture = testFixture.replace("[", "");
testFixture = testFixture.replace("{", "");
testFixture = testFixture.replace("}", "");
String[] singleFixture = testFixture.split(",");

for (int i = 0; i <= singleFixture.length; i++) {
//System.out.println(singleFixture[i]);
String test = singleFixture[i];
String[] fix1 = test.split(":");
singleFixtureComplete.add(fix1[0]);
singleFixtureComplete.add(fix1[1]);
}
singleFixtureComplete.add(Arrays.toString(singleFixture));
}

它的输出是一个位于 fixtures[0] 的 json 数组,就是这样......

fixtures.length = 381。所以我希望当内部循环完成时,它将返回到外部循环的顶部并且 x 将增加 +1。

发生的事情是内部循环结束,仅此而已。 x 不会迭代到 fixtures.length 即 381 次。

fixtures 中的每个索引都是一个包含 34 个键值对的 JSON 数组。所以 singleFixture.length = 34。这行得通,我迭代了 34 次。然后循环结束,忽略外层循环。

有人知道我在这里做错了什么吗?

最佳答案

你的 loop 的原因没有进行下一次迭代是因为 try-catch子句正在捕获您的异常。查看 try-catch位于主要for-loop之外 block 。

 //!!! The try is catching the exception for you. Remove it to see the real problem.
try {
URIBuilder builder = new URIBuilder("http://api.fantasydata.net/soccer/v2/json/Schedule/73");
...
for (int x = 0; x <= fixtures.length; x++) {
// Exception somewhere
}
}
catch(Exception e) {

}

问:那么你必须做些什么才能使问题变得明显呢?

答:尝试;

  1. 注释掉 try-catch条款
  2. 添加throws Exceptionmain方法; public static void main(String[] args) throws Exception

这应该会给您留下一些堆栈跟踪以供进一步调查。

此外,正如其他人所提到的,您到达那里的循环逻辑是错误的。应该是<小于 <= , 后者肯定会触发 index out of bound异常。

理论:

只是一个观察——我认为嵌套循环正在触发出界异常的索引,从而引发问题?作为第一步,我会先修复这两个循环逻辑。

好吧,如果您仍然遇到问题并且希望我们查看堆栈跟踪,请发布另一个问题,我们可以进一步解决这个问题。

很乐意提供帮助。

关于java - 嵌套for循环不返回外循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38374375/

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