如何迭代数组并跳过一些?

例如,我有这样的阵列在我的Java程序:如何迭代数组并跳过一些?

String nums[] = {"a", "b", "c", "d", "e", "f", "g", "h" ...} 

我想要写一个循环,将遍历数组,并采取每2和第3个字母和他们每个人存储在两个连续指数法在数组中,跳过第4个,取第5个和第6个字母,并将每个连续两个索引存储在一个数组中,跳过第7个并继续处理未知大小的数组。

所以最终的阵列将nums2 = {"b", "c", "e", "f", "h", "i"...}

回答:

这将运行并打印out = b, c, e, f, h, i

public class Skip { 

public static String[] transform(String[] in) {

int shortenLength = (in.length/3) + ((in.length % 3 > 0) ? 1 : 0);

int newLength = in.length - shortenLength;

String[] out = new String[newLength];

int outIndex = 0;

for (int i = 0; i < in.length; i++) {

if (i % 3 != 0) {

out[outIndex++] = in[i];

}

}

return out;

}

public static void main(String[] args) {

String[] nums = {"a", "b", "c", "d", "e", "f", "g", "h", "i" };

String[] out = transform(nums);

System.out.println("out = " + String.join(", ", out));

}

}

回答:

你可以的,如果内的语句中使用for循环,将跳过每一个第三个字母从阵列中的第二项开始。

int j=0; //separate counter to add letters to nums2 array 

for(int i=0; i<nums.length; i++) { //starts from 1 to skip the 0 index letter

if (i%3 != 0) { //should include every letter except every third

nums2[j] = nums[i];

j++;

}

}

回答:

for(int num : nums){ 

if(num % 3 == 1) Continue;

System.out.print(num + " ");

}

Java代码示例,如上

回答:

String[] array = {"a", "b", "c", "d", "e", "f", "g", "h" ...} //Consider any datatype 

for(int i =1; i<array.length;i++) {

if(i%3 == 0) {

}

else {

System.out.println(a[array]);

}

}

这样,它会跳过4元,7元,10元,第十三元素,其对应的指数值是3的倍数,我们跳过由if条件该索引元件..

回答:

请始终分享您迄今为止所尝试的内容。人们会更乐于帮助你。否则,你应得的最多的是伪代码。尝试是这样的:

for (1 to length) 

{

if(i % 3 != 0)

add to new array

}

回答:

对于最简洁的方式,使用Java 9流:

String[] nums2 = IntStream.range(0, nums.length) 

.filter(i -> i % 3 != 0)

.mapToObj(i -> nums[i])

.toArray(String[]::new);

以上是 如何迭代数组并跳过一些? 的全部内容, 来源链接: utcz.com/qa/261677.html

回到顶部