Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java中的字符串[]S,在其中添加值,现在再创建2个数组,偶数[]应包含索引号为偶数的值S[]和索引号为奇数的值S[]_Java_Sql_Arrays_Sql Server - Fatal编程技术网

java中的字符串[]S,在其中添加值,现在再创建2个数组,偶数[]应包含索引号为偶数的值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

在Java中创建一个大小为x的字符串[]S数组,在init中添加一些值,现在再创建两个数组偶数[]和奇数[],偶数数组将包含索引号为偶数的字符串S[]的值,奇数[]将包含索引号为奇数的字符串S[]的值

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;iimport 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[] {}); } }