Java - Проверка, является ли входное число положительным целым числом, отрицательным целым числом, натуральным числом и так далее.

Есть ли в Java какой-нибудь встроенный метод, с помощью которого можно определить тип пользовательского ввода - положительный, отрицательный и так далее? Приведенный ниже код не работает. Я пытаюсь найти способ ввести любой встроенный метод, который может сделать это в операторе if.

import java.util.Scanner;

public class Compare {

    public static void main(String[] args) { 

        Scanner input = new Scanner(System.in);

        System.out.print("Enter a number: ");
        int number = input.nextInt();

        if(number == int) 
            System.out.println("Number is natural and positive.");
    }
}
Комментарии к вопросу (1)
Решение

Если вам действительно нужно избегать операторов, используйте Math.signum ()

Возвращает функцию signum аргумента; ноль, если аргумент есть ноль, 1,0, если аргумент больше нуля, -1,0, если аргумент меньше нуля.

РЕДАКТИРОВАТЬ: Согласно комментариям, это работает только для двойных и плавающих значений. Для целочисленных значений вы можете использовать метод:

Integer.signum (int i)

Комментарии (1)

Как насчет того, чтобы использовать следующее:

int number = input.nextInt();
if (number < 0) {
    // negative
} else {
   // it's a positive
}
Комментарии (4)

(Вы должны как оператор Else-If проверить для трех разных состояний (положительный, отрицательный, 0)

Вот простой пример (исключая возможность нецелых значений)

  import java.util.Scanner;

  public class Compare {

   public static void main(String[] args) { 

    Scanner input = new Scanner(System.in);

    System.out.print("Enter a number: ");
    int number = input.nextInt();

    if( number == 0)
    { System.out.println("Number is equal to zero"); }
    else if (number > 0)
    { System.out.println("Number is positive"); }
    else 
    { System.out.println("Number is negative"); }

  }
 }
Комментарии (1)

Для целых чисел вы можете использовать Integer.signum ()

Возвращает функцию signum указанного значения int. (Возвратное значение равно -1, если указанное значение является отрицательным; 0, если указанное значение равно нулю; и 1, если указанное значение положительное.)

Комментарии (0)

Можно использовать if(number >= 0). Тот факт, что вы используете int number = input.nextInt();, гарантирует, что это должно быть Integer.

Комментарии (0)

Используйте приведенный ниже код.

if(number >=0 ) {
            System.out.println("Number is natural and positive.");
}
Комментарии (0)