Check if a number is binary or not in Java - GeeksforGeeks

09 Sep, 2021
Given a number N, the task is to check first whether the given number is binary or not and its value should be greater than 1. print true if N is the binary representation else print false.
Examples: 
Input: N = 1010 Output: true Explanation: Given number is greater than 1 and none of its digits is greater than 1. Thus, it is a binary number greater than 1.
Examples: N = 1234 Output: false Explanation: Given number is greater than 1 but some of its digits { 2, 3, 4} are greater than 1. Thus, it is not a binary number. 
Iterative Approach: 
Check if the number is less than or equal to 1. If it is then, print false.Else if number is greater than 1 then, check if every digits of the number is 1 or 0.If any digits of the number is greater than 1 then print false, else print true.
Check if the number is less than or equal to 1. If it is then, print false.
Else if number is greater than 1 then, check if every digits of the number is 1 or 0.
If any digits of the number is greater than 1 then print false, else print true.
Below is the implementation of the above approach:
Java 

// Java program for the above approach
class GFG {

    // Function to check if number
    // is binary or not
    public static boolean isBinaryNumber(int num)
    {

        // Return false if a number
        // is either 0 or 1 or a
        // negative number
        if (num == 0 || num == 1
            || num < 0) {
            return false;
        }

        // Get the rightmost digit of
        // the number with the help
        // of remainder '%' operator
        // by dividing it with 10
        while (num != 0) {

            // If the digit is greater
            // than 1 return false
            if (num % 10 > 1) {
                return false;
            }
            num = num / 10;
        }
        return true;
    }

    public static void main(String args[])
    {
        // Given Number N
        int N = 1010;

        // Function Call
        System.out.println(isBinaryNumber(N));
    }
}

true
 
Time Complexity: O(K), K is the number of digits in N Auxiliary Space: O(1)
Regular Expression Approach: 
1. Convert the number into string.
2. Create a Regular Expression as mentioned below:
regex = “[01][01]+”;
where: 
[01][01] matches one of the following { “00”, “01”, “10”, “11” }.
+ matches one or more occurrence of previous regular expression
3. Match the given number with the regular expression. If it matches return true, else return false.
Below is the implementation of the above approach:
Java 

// Java program for the above approach
import java.util.regex.*;
class GFG {

    // Function to check number is
    // binary or not
    public static boolean isBinaryNumber(int num)
    {

        // Regex to check a number
        // is binary or not
        String regex = "[01][01]+";

        // Match the given number with
        // the regular expression
        return Integer
            .toString(num)
            .matches(regex);
    }

    // Driver Code
    public static void main(String args[])
    {
        // Given Number
        int N = 1010;
        System.out.println(isBinaryNumber(N));
    }
}

true
 
Time Complexity: O(K), K is the number of digits in N Auxiliary Space: O(1) 
nidhi_biet
arorakashish0911
binary-representation
java-regular-expression
regular-expression
Java Programs
Mathematical
Pattern Searching
Mathematical
Pattern Searching
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Java Programming Examples
How to Iterate HashMap in Java?
Factory method design pattern in Java
Iterate through List in Java
Min Heap in Java
Program for Fibonacci numbers
Write a program to print all permutations of a given string
C++ Data Types
Set in C++ Standard Template Library (STL)
Coin Change | DP-7