java中的String [] S,在其中添加值,现在再创建2个数组,even []应包含具有偶数索引号的值S []和具有奇数索引号的奇数[]

时间:2019-07-13 21:15:20

标签: java sql arrays sql-server

在Java中创建大小为x的String [] S数组,添加一些值init,现在再创建两个数组even []和奇数[],偶数数组应包含具有偶数索引号和奇数[]将包含具有奇数索引号的字符串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**********");

            }
        }
    }
}

预期输出:

Enter total no of elements 
3
Enter Values
HI
hello
Bye
Even array:[HI,Bye]
ODD array :[hello]

3 个答案:

答案 0 :(得分:0)

public static void main(String[] args) {

    int evenCounter = 0;
    int oddCounter = 0;
    Scanner reader = new Scanner(System.in);
    System.out.println("Enter total no of elements ");
    int num = reader.nextInt();

    String[] n = new String[num];
    System.out.println("Enter values:");
    for (int i=0;i<n.length;i++)
    {
        n[i]=reader.next();
        if (i % 2 == 0) {
            evenCounter++;
        } 
        else 
        {
            oddCounter++;
        }
    }
    String[] even = new String[evenCounter];
    String[] odd = new String[oddCounter];

   for (int z=0;z<n.length;z++)
   {
       if (z%2==0)
       {
           for (int j=0;j<even.length;j++)
           {
               if (even[j]==null)
               {
                   even[j]=n[z];
                   break;
               }
           }
       }
       else if (z%2==1)
       {
           for (int j=0;j<odd.length;j++)
           {
               if (odd[j]==null)
               {
                   odd[j]=n[z];
                   break;
               }
           }
       }
   }

这个想法是迭代原始的String数组,并检查它的索引是否为 偶数/奇数(就像您在代码中所做的那样以检查有多少几率/偶数)。 如果索引是偶数,则遍历evens数组并检查该数组的第一个空单元格(在java中,当您生成一个字符串数组时,将得到一个充满空值的数组,因此您将搜索第一个null并将其替换为值从原始数组)。 赔率也一样。

答案 1 :(得分:0)

您需要这样的东西:

Tabs

答案 2 :(得分:0)

如果您使用的是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[] {});
  }
}