java 一次迭代数组中的两个项目

ecfdbz9o  于 2022-12-02  发布在  Java
关注(0)|答案(5)|浏览(143)

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

myzjeezk

myzjeezk1#

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

**注意!**如果数组是由调用方提供的,那么您可能需要添加一些额外的代码来处理a.length不是偶数的情况。

esbemjvw

esbemjvw2#

所以我假设你指的是a -> bc -> d。处理这个问题的经典方法是一次递增两个的循环:

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

p4tfgftt3#

几种可能性。
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;
}
elcex8rz

elcex8rz4#

用点数学怎么样?

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]);
}
gudnpqoy

gudnpqoy5#

我也喜欢一次递增两个的循环,但是为了增加一些不同的东西,你也可以使用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

相关问题