使用if查找并计算数组中的奇数

时间:2019-06-21 19:04:50

标签: java arrays

因此,我一直在尝试在没有if的帮助下对数组中的奇数进行计数。那里有任何Master编码员(我是新手)。

public static void main(String[] args) {


      int array[] = {1,4,5,9,0,-1,5,7};
      int count = 0;
        for (int i = 0; i <array.length ; i++) {
            if (array[i] %2 != 0){
                count ++;
            }
        }

        System.out.println("Odds " + count);

}

2 个答案:

答案 0 :(得分:1)

甚至更好,甚至不是需要的;)

public static void main(String[] args) {
        int array[] = { 1, 4, 5, 9, 0, -1, 5, 7 };
        long count = Arrays.stream(array).filter(it -> (it & 1) == 1).count();
        System.out.println("Odds " + count);
    }

答案 1 :(得分:0)

好的全部,您需要做的是使用String ...将int数组构建到StringBuilder中。

然后,您需要按偶数和奇数将其分成两个数组!现在您有了一个偶数数组和几率!作为弦乐!您可以通过计算数组的长度来找到几率。然后,您还可以将它们解析回int或保留为String并仅打印它们:

      int array[] = {1,4,5,9,0,-1,5,7};

      StringBuilder sb = new StringBuilder();

        for (int i = 0; i <array.length ; i++) 
        {
            sb.append(array[i]);
            sb.append(",");
        }
        String str = sb.toString();

        //You can split and them parse them back into an integer!  And then print them anyway!
        String[] odds = str.split("\\,*\\-*\\s*[24680]*\\,");
        //This is the number of odds!
        System.out.println(odds.length);
        for (String odd : odds) {
            int oddNum = Integer.parseInt(odd);
            System.out.print(oddNum + " ");
        }

        System.out.println();

        //Or just print them!
        String[] evens = str.split("\\,*\\-*\\s*[13579]*\\,");
        for (String even : evens) {
            System.out.print(even + " ");
        }

注意:我的正则表达式不是最好的,可以对其进行改进以更好地删除空格/空字符

PS。编写此代码时,没有if条语句受到损害。同样,这段代码显然不是要在实际的环境中使用的,我用regex弄乱了它,但它确实做了所需的工作。