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