java中的字符串[]S,在其中添加值,现在再创建2个数组,偶数[]应包含索引号为偶数的值S[]和索引号为奇数的值S[]
在Java中创建一个大小为x的字符串[]S数组,在init中添加一些值,现在再创建两个数组偶数[]和奇数[],偶数数组将包含索引号为偶数的字符串S[]的值,奇数[]将包含索引号为奇数的字符串S[]的值java中的字符串[]S,在其中添加值,现在再创建2个数组,偶数[]应包含索引号为偶数的值S[]和索引号为奇数的值S[],java,sql,arrays,sql-server,Java,Sql,Arrays,Sql Server,在Java中创建一个大小为x的字符串[]S数组,在init中添加一些值,现在再创建两个数组偶数[]和奇数[],偶数数组将包含索引号为偶数的字符串S[]的值,奇数[]将包含索引号为奇数的字符串S[]的值 package trying; import java.util.Scanner; public class ArrayTest { public static void main(String[] args) { int val; int evcou
package trying;
import java.util.Scanner;
public class ArrayTest {
public static void main(String[] args) {
int val;
int evcounter = 0;
int odcounter = 0;
Scanner sc = new Scanner(System.in);
System.out.println("Enter total no of elements ");
val = sc.nextInt();
System.out.println("Enter values ");
String[] n = new String[val];
for (int i = 0; i < n.length; i++) {
n[i] = sc.next();
if (i % 2 == 0) {
evcounter++;
} else {
odcounter++;
}
if (evcounter + odcounter == val) {
String[] eve = new String[evcounter];
String[] odd = new String[odcounter];
System.out.println("******Please Help AFTER THIS**********");
}
}
}
}
其思想是迭代原始字符串数组并检查其索引是否正确
偶数/奇数,就像您在代码中检查有多少赔率/偶数一样。
如果索引为偶数,则在生成字符串数组时,遍历evens数组并在java中检查数组的第一个空单元格,得到一个充满null的数组,因此搜索第一个null并用原始数组中的值替换它。
赔率也是一样。你需要这样的东西:
public static void main(String[] args) {
int val;
int evcounter = 0;
int odcounter = 0;
Scanner sc = new Scanner(System.in);
System.out.println("Enter total no of elements ");
val = sc.nextInt();
System.out.println("Enter values ");
String[] n = new String[val];
String[] eve = new String[(int) Math.ceil(val/2D)];
String[] odd = new String[val/2];
for (int i = 0; i < n.length; i++) {
n[i] = sc.next();
if (i % 2 == 0) {
eve[evcounter] = n[i];
evcounter++;
} else {
odd[odcounter] = n[i];
odcounter++;
}
}
System.out.println("Even array: " + Arrays.toString(eve));
System.out.println("Odd array: " + Arrays.toString(odd));
}
如果您使用的是1.8+,那么最好使用易于理解和优雅的功能性样式
import java.util.Arrays;
import java.util.function.IntPredicate;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
public class MyTestCase {
@Test
public void evenOddStringArrayPrinting() {
String[] src = new String[] {"HI", "Hello", "Bye"};
final String[] evenArray = getArrayFrom(src, i -> i % 2 == 0);
final String[] oddArray = getArrayFrom(src, i -> i % 2 == 1);
System.out.println(Arrays.toString(evenArray));
System.out.println(Arrays.toString(oddArray));
Assert.assertEquals(2, evenArray.length);
Assert.assertEquals(1, oddArray.length);
}
private String[] getSome(final String[] src, final IntPredicate predicate) {
return IntStream.range(0, src.length)
.filter(predicate)
.mapToObj(i -> src[i])
.collect(Collectors.toList())
.toArray(new String[] {});
}
}
请参阅:您需要多个循环。无法对偶数和奇数数组进行Sysout,获取垃圾值请解释部分代码字符串[]eve=新字符串[int Math.ceilval/2D];字符串[]奇数=新字符串[val/2];对于int i=0;i
import java.util.Arrays;
import java.util.function.IntPredicate;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
public class MyTestCase {
@Test
public void evenOddStringArrayPrinting() {
String[] src = new String[] {"HI", "Hello", "Bye"};
final String[] evenArray = getArrayFrom(src, i -> i % 2 == 0);
final String[] oddArray = getArrayFrom(src, i -> i % 2 == 1);
System.out.println(Arrays.toString(evenArray));
System.out.println(Arrays.toString(oddArray));
Assert.assertEquals(2, evenArray.length);
Assert.assertEquals(1, oddArray.length);
}
private String[] getSome(final String[] src, final IntPredicate predicate) {
return IntStream.range(0, src.length)
.filter(predicate)
.mapToObj(i -> src[i])
.collect(Collectors.toList())
.toArray(new String[] {});
}
}