【问题标题】:Accessing the index of the current interation of loop variable while looping through a string array在遍历字符串数组时访问循环变量当前迭代的索引
【发布时间】:2014-02-24 09:21:59
【问题描述】:

Java 新手在这里。我有一个问题,我确信必须有一个简单的解决方案,但我一直在搜索,似乎找不到任何可以回答我问题的东西。

我试图找出在 for 循环中遍历字符串数组时使用什么表达式来获取循环变量当前交互的索引。具体来说,我正在尝试将在 for 循环中获取的一些信息存储在不同的数组中(我认为有一种更有效的方法可以做到这一点,但我们在课堂上还没有涵盖超过一维数组,所以无论如何),以平行索引作为当前交互。例如,我试图将循环的第二次迭代产生的信息存储在另一个数组的 [1] 索引中。我试图通过说 new_array[i.indexOf()] = blah blah blah 来做到这一点,其中 i 是 for 循环变量。不幸的是,它告诉我,因为它是一个字符串,所以它不能将它转换为一个 int 或其他东西,并且在 Eclipse 中弹出的对话框只引用了如何访问该字符串中字符的索引而不是字符串的索引在被循环的数组中。

如果有人能帮我解决这个问题,我将非常感激。

【问题讨论】:

  • 你试过 new_array[i.indexOf()] 而不是 new_array[i]?
  • 是的,它不起作用,因为它是一个被迭代的字符串索引。循环变量始终包含一个字符串,因此您可以使用 array[i] 引用数组的索引。 (具体来说——“类型不匹配:无法从字符串转换为整数”。)
  • 你真的应该粘贴代码,目前还不清楚你是如何解决这个问题的:)

标签: java arrays loops


【解决方案1】:

听起来您正在使用 foreach 循环。如果是这样,你需要引入一个计数器:

int i = 0;
for (String s : stringArray) {
    // do something with s, which is at position i in the array
    i++; // increment counter ready for next iteration
}

或者,您可以恢复为标准 for 循环:

for (int i = 0; i < stringArray.length; i++) {
    String s = stringArray[i];
    // do something with s, which is at position i in the array
}

【讨论】:

  • 非常感谢。我想当您使用增强循环时无法访问索引?
  • 没有。当您不需要 需要索引时,使用增强的循环(称为 foreach 循环)。否则,请使用常规 for 循环。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-01
  • 2023-03-23
  • 2017-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多