Java:检查一个数字是双位数还是单位数no if语句?

时间:2014-10-28 20:10:40

标签: java if-statement numbers digits

我有作业来检查数字是一个两位数还是一位数而不使用if语句。谢谢你的帮助!

public class SchoolTest {
    public static void main(String[] args) {
        Scanner reader = new Scanner(System.in);
        int x;
        System.out.println("Please enter a number");
        x = reader.nextInt();
        if ((x > 9 && x < 100) || (x < -9 && x > -100)) {
            System.out.println(true);
            main(args);
        } else {
            System.out.println(false);
            main(args);
        }
    }
}

5 个答案:

答案 0 :(得分:10)

只需将值设置为条件:

boolean isDoubleDigit = (x > 9 && x < 100) || (x < -9 && x > -100);
System.out.println( isDoubleDigit );

答案 1 :(得分:2)

public class Digits {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int check = scan.nextInt();
        //False for single digit, true for double digit
        boolean isDoubleDigit = (check / 10 == 0 && check / 100 == 0) ? false : true;
        System.out.println(isDoubleDigit);
    }
}

三元运算符在您的情况下非常有用

答案 2 :(得分:1)

如果已知该数字为非负数:

int digits = Integer.toString(theIntValue).trim().length();

(可能不需要trim()。)

如果可能是否定的:

int digits = Integer.toString(Math.abs(theIntValue)).trim().length();

如果必须返回布尔值:

boolean isTwoDigit = Integer.toString(Math.abs(theIntValue)).trim().length() == 2;

答案 3 :(得分:0)

您可以将数字读取为String而不是int,并使用Regex

答案 4 :(得分:-2)

本应写完没有主(args)