我有一个字符串数组,看起来像{"a","b","c","d"}。每两个连续的项都是对,我想迭代数组,并能够考虑两个字符串在一起。目前我正在考虑有一个循环和计数,以计算我在迭代中的位置,但有一个更简单/更好的方法吗?
{"a","b","c","d"}
myzjeezk1#
for (int i=0 ; i<a.length ; i+=2) { String first = a[i]; String second = a[i+1]; ... }
**注意!**如果数组是由调用方提供的,那么您可能需要添加一些额外的代码来处理a.length不是偶数的情况。
a.length
esbemjvw2#
所以我假设你指的是a -> b和c -> d。处理这个问题的经典方法是一次递增两个的循环:
a -> b
c -> d
for(int i = 0; i < myArray.length; i += 2) { final String firstVal = myArray[i]; final String secondVal = myArray[i + 1]; }
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; }
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]); }
gudnpqoy5#
我也喜欢一次递增两个的循环,但是为了增加一些不同的东西,你也可以使用IntStream:
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
5条答案
按热度按时间myzjeezk1#
**注意!**如果数组是由调用方提供的,那么您可能需要添加一些额外的代码来处理
a.length
不是偶数的情况。esbemjvw2#
所以我假设你指的是
a -> b
和c -> d
。处理这个问题的经典方法是一次递增两个的循环:p4tfgftt3#
几种可能性。
1)的
2)的
elcex8rz4#
用点数学怎么样?
gudnpqoy5#
我也喜欢一次递增两个的循环,但是为了增加一些不同的东西,你也可以使用
IntStream
:输出: