Cómo verificar si la string contiene solo dígitos en Java

Dada la string str , la tarea es escribir un programa Java para verificar si una string contiene solo dígitos o no. Si es así, escriba verdadero, de lo contrario, falso. 

Ejemplos: 

Entrada: str = «1234» 
Salida: verdadero 
Explicación: 
la string dada contiene solo dígitos, por lo que la salida es verdadera.

Entrada: str = «GeeksforGeeks2020» 
Salida: falso 
Explicación: 
la string dada contiene caracteres alfabéticos y dígitos, por lo que la salida es falsa.  

Soluciones 

1. Usando transversal

La idea es recorrer cada carácter de la string y verificar si el carácter de la string contiene solo dígitos del 0 al 9 . Si todo el carácter de la string contiene solo dígitos, devuelve verdadero; de lo contrario, devuelve falso. A continuación se muestra la implementación del enfoque anterior: 

Java

// Java program for the above approach
// contains only digits
class GFG {
 
    // Function to check if a string
    // contains only digits
    public static boolean
    onlyDigits(String str, int n)
    {
        // Traverse the string from
        // start to end
        for (int i = 0; i < n; i++) {
 
            // Check if character is
            // not a digit between 0-9
            // then return false
            if (str.charAt(i) < '0'
                || str.charAt(i) > '9') {
                return false;
            }
        }
          // If we reach here, that means
          // all characters were digits.
        return true;
    }
 
    // Driver Code
    public static void main(String args[])
    {
        // Given string str
        String str = "1a234";
        int len = str.length();
 
        // Function Call
        System.out.println(onlyDigits(str, len));
    }
}
Producción

false
  • Complejidad de tiempo: O(N), donde N es la longitud de la string dada. 
  • Espacio Auxiliar: O(1)  

2. Usando Character.isDigit(char ch)

La idea es iterar sobre cada carácter de la string y verificar si el carácter especificado es un dígito o no usando Character.isDigit(char ch) . Si el carácter es un dígito, devuelve verdadero, de lo contrario, devuelve falso. A continuación se muestra la implementación del enfoque anterior:  

Java

// Java program to check if a string
// contains only digits
class GFG {
 
    // Function to check if a string
    // contains only digits
    public static boolean onlyDigits(String str, int n)
    {
 
        // Traverse the string from
        // start to end
        for (int i = 0; i < n; i++) {
 
            // Check if the sepecified
            // character is a not digit
            // then return false,
            // else return false
            if (!Character.isDigit(str.charAt(i))) {
                return false;
            }
        }
          // If we reach here that means all
          // the characters were digits,
          // so we return true
        return true;
    }
 
    // Driver Code
    public static void main(String args[])
    {
        // Given string str
        String str = "1234";
        int len = str.length();
 
        // Function Call
        System.out.println(onlyDigits(str, len));
    }
}
Producción

true
  • Complejidad de tiempo: O(N), donde N es la longitud de la string dada. 
  • Espacio Auxiliar: O(1) 

3. Uso de expresiones regulares

  • Consigue la cuerda. 
  • Cree una expresión regular para verificar que la string contenga solo dígitos como se menciona a continuación:  
regex = "[0-9]+";
  • Haga coincidir la string dada con la expresión regular. En Java, esto se puede hacer usando Pattern.matcher() .
  • Devuelve verdadero si la string coincide con la expresión regular dada; de lo contrario, devuelve falso.

A continuación se muestra la implementación del enfoque anterior:

Java

// Java program to check if a string
// contains only digits
import java.util.regex.*;
class GFG {
 
    // Function to validate URL
    // using regular expression
    public static boolean
    onlyDigits(String str)
    {
        // Regex to check string
        // contains only digits
        String regex = "[0-9]+";
 
        // Compile the ReGex
        Pattern p = Pattern.compile(regex);
 
        // If the string is empty
        // return false
        if (str == null) {
            return false;
        }
 
        // Find match between given string
        // and regular expression
        // using Pattern.matcher()
        Matcher m = p.matcher(str);
 
        // Return if the string
        // matched the ReGex
        return m.matches();
    }
 
    // Driver Code
    public static void main(String args[])
    {
        // Given string str
        String str = "1234";
 
        // Function Call
        System.out.println(onlyDigits(str));
    }
}
Producción

true
  • Complejidad de tiempo: O(N), donde N es la longitud de la string dada. 
  • Espacio Auxiliar: O(1)  

Publicación traducida automáticamente

Artículo escrito por prashant_srivastava y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *