kar
kar

Reputation: 3651

Java - Check if input is a positive integer, negative integer, natural number and so on.

Is there any in-built method in Java where you can find the user input's type whether it is positive, or negative and so on? The code below doesn't work. I am trying to find a way to input any in-built method that can do it at the if statement.

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.");
    }
}

Upvotes: 31

Views: 247388

Answers (6)

Juned Ahsan
Juned Ahsan

Reputation: 68715

If you really have to avoid operators then use Math.signum()

Returns the signum function of the argument; zero if the argument is zero, 1.0 if the argument is greater than zero, -1.0 if the argument is less than zero.

EDIT : As per the comments, this works for only double and float values. For integer values you can use the method:

Integer.signum(int i)

Upvotes: 46

Kefirchiks
Kefirchiks

Reputation: 288

For integers you can use Integer.signum()

Returns the signum function of the specified int value. (The return value is -1 if the specified value is negative; 0 if the specified value is zero; and 1 if the specified value is positive.)

Upvotes: 3

blackpanther
blackpanther

Reputation: 11486

What about using the following:

int number = input.nextInt();
if (number < 0) {
    // negative
} else {
   // it's a positive
}

Upvotes: 31

user2952504
user2952504

Reputation:

(You should you as Else-If statement to check the for the three different state (positive, negative, 0)

Here is a simple example (excludes the possibility of non-integer values)

  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"); }


  }
 }

Upvotes: 7

Prabhakaran Ramaswamy
Prabhakaran Ramaswamy

Reputation: 26094

Use like below code.

if(number >=0 ) {
            System.out.println("Number is natural and positive.");
}

Upvotes: 0

Theolodis
Theolodis

Reputation: 5102

You could use if(number >= 0). The fact that you use int number = input.nextInt(); makes sure that it has to be an Integer.

Upvotes: -1

Related Questions