例如,我在我的Java程序中有这个数组:
String nums[] = {"a", "b", "c", "d", "e", "f", "g", "h" ...}
我想编写for循环,循环遍历数组并取每个第2和第3个字母并将它们分别存储在数组中的两个连续索引中,跳过第4个字符,取第5个和第6个字母并将每个字母连续存储数组中的索引,跳过第7个并继续为未知大小的数组执行此操作。
所以最终的数组是nums2 = {"b", "c", "e", "f", "h", "i"...}
答案 0 :(得分:1)
您可以在for循环中使用if语句,该语句将跳过从数组中的第二个项开始的每三个字母。
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++;
}
}
答案 1 :(得分:1)
for(int num : nums){
if(num % 3 == 1) Continue;
System.out.print(num + " ");
}
上面的示例java代码
答案 2 :(得分:1)
请始终分享您到目前为止所尝试的内容。人们会更乐于接受你的帮助。否则,你应得的最多是伪代码。尝试类似:
for (1 to length)
{
if( i % 3 != 0)
add to new array
}
答案 3 :(得分:0)
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个元素,13对应的索引值是3的倍数的元素,我们正在跳过if条件的索引元素。
答案 4 :(得分:0)
这会运行并打印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));
}
}
答案 5 :(得分:0)
以最简洁的方式,使用Java 9流:
String[] nums2 = IntStream.range(0, nums.length)
.filter(i -> i % 3 != 0)
.mapToObj(i -> nums[i])
.toArray(String[]::new);