Java:如何测试单个字符是偶数还是奇数?

时间:2014-06-27 20:26:10

标签: java

在Java中,如何测试字符是偶数还是奇数?

这是我到目前为止所做的:

import java.util.Scanner;

public class OddOrEven{
   public static void main(String args[]){
       Scanner input = new Scanner(System.in);

          int number, digit1, digit2, digit3;

          System.out.print( "Enter three-digit number: " );// prompt
          number = input.nextInt(); // read number 
          // determine the 3 digits
          digit1 = number / 100;
          digit2 = number % 100 / 10;
          digit3 = number % 100 % 10;

          if (digit1 % 2 == 0 && digit2 % 2 == 0 && digit3 % 2 == 0);
              System.out.println( "This number contains all even digits.");

          if (digit1 % 2 != 0 && digit2 % 2 == 0 && digit3 % 2 == 0);
              System.out.println("This number contains both odd and even digits.");

          if (digit1 % 2 != 0 && digit2 % 2 != 0 && digit3 % 2 == 0 );
            System.out.println("This number contains both odd and even digits.");   

          if (digit1 % 2 == 0  && digit2 % 2 != 0 && digit3 % 2 == 0 );
            System.out.println("This number contains both odd and even digits."); 

          if (digit1 % 2 == 0  && digit2 % 2 != 0 && digit3 % 2 != 0);
            System.out.println("This number contains both odd and even digits."); 

          if (digit1 % 2 != 0 && digit2 % 2 != 0 && digit3 % 2 != 0);
            System.out.println("This number contains all odd digits.");
   }
}

2 个答案:

答案 0 :(得分:4)

如果您使用的号码是int(或类似long之类的原始类型),那么您可以执行以下操作

int num = // something
while (num != 0) {
    int digit = num % 10;
    System.out.println(digit + " is " + (digit % 2 == 0 ? "even" : "odd"));
    num /= 10;
}

这将从右到左迭代数字。

答案 1 :(得分:3)

public static void main(String[] args) throws Exception {

    int num = 28172;
    String temp = Integer.toString(num);
    int[] numArray = new int[temp.length()];

    for (int i = 0; i < temp.length(); i++) {
        numArray[i] = temp.charAt(i) - '0';
    }

    for (int i : numArray) {
        System.out.println("Num " + i + " is " + ((i % 2 == 0) ? "even" : "odd"));
    }

}

给我输出:

Num 2 is even
Num 8 is even
Num 1 is odd
Num 7 is odd
Num 2 is even

首先,将int转换为String。然后,由于StringsCharacter arrays,您可以遍历character中的每个array,并通过减去Integer将其转换为Character ascii Integer 0.然后,您可以遍历此数组中的每个mod,并使用%运算符(num%2==0),它将为您提供除法的余数。如果数字是偶数,true将返回false,否则{{1}}。