一次迭代一个数组2个项目

时间:2014-03-17 20:57:12

标签: java loops iteration

我有一个类似于{"a","b","c","d"}的字符串数组。每两个连续的项是成对的,我想迭代数组,并能够将两个字符串一起考虑。目前我正在考虑使用循环和计数来计算我在迭代中的位置,但是有更简单/更好的方法吗?

5 个答案:

答案 0 :(得分:8)

for (int i=0 ; i<a.length ; i+=2) {
    String first = a[i];
    String second = a[i+1];
    ...
}

如果数组是由调用者提供的,那么你可能想要处理a.length不均匀的情况。

答案 1 :(得分:3)

所以我认为你的意思是a -> bc -> d。解决这个问题的经典方法是循环,一次增加两个:

for(int i = 0; i < myArray.length; i += 2) {
    final String firstVal = myArray[i];
    final String secondVal = myArray[i + 1];
}

答案 2 :(得分:2)

一些可能性。

1)

class PairString {
    String a;
    String b;
}
PairString[] stringPairs;

2)

while (i < array.length) {
    String a = array[i];
    String b = array[i + 1];
    i += 2;
}

答案 3 :(得分:0)

使用数学怎么样?

final String[] words = { "Foo", "Bar", "Baz", "42" };
final int n = words.length / 2;
for (int i = 0; i < n; i++) {
    System.out.println(words[i * 2] + "-" + words[(i * 2) + 1]);
}

答案 4 :(得分:0)

我喜欢每次也增加2的循环,但是只要增加一些区别,您还可以使用IntStream

final String[] words = { "Foo", "Bar", "Baz", "42" };
IntStream.range(1, words.length).forEach(i -> System.out.println(words[i-1] + words[i]));

输出:

FooBar
BarBaz
Baz42