Compruebe si una string comienza con alguno de los prefijos dados en Java

Dada una string y una serie de prefijos. La tarea es verificar si la string dada comienza con alguno de los prefijos dados o no.

Ejemplo:

Entrada : String = «GeeksforGeeks», Prefijos = {«Geeks», «for», «Gfor»}
Salida : verdadero

Entrada : String = «GeeksforGeeks», Prefijos = {«Freaks», «for», «Freak»}
Salida : falso

A continuación se muestran los siguientes enfoques que se pueden utilizar para completar la tarea dada:

  1. Enfoque ingenuo : este método implica verificar explícitamente la string para cada uno de los elementos de la array de prefijos.

    Algoritmo:

    1. Obtenga la string y los prefijos con los que se hará coincidir.
    2. Usando loop, itere a través de los prefijos y verifique si la string comienza con el prefijo respectivo. Esto se hace con la ayuda del método String.startsWith().
    3. Si algún prefijo coincide, devuelve verdadero; de lo contrario, devuelve falso.

    Programa 1:

    class PrefixSearch {
        public static void main(String[] args)
        {
            // Array of prefixes
            String[] arr = { "Geeks", "for", "Gfor" };
      
            // Given string
            String str = "GeeksforGeeks";
      
            boolean result = false;
      
            // Check for each prefix element
            for (int i = 0; i < 3; i++) {
                if (str.startsWith(arr[i])) {
                    result = true;
                    break;
                }
            }
      
            if (result)
                System.out.println("Given String "
                                   + "starts with one of the prefixes.");
            else
                System.out.println("Given String do not "
                                   + "starts with one of the prefixes.");
        }
    }

    Producción:

    Given String starts with one of the prefixes.
    

    Programa 2:

    class PrefixSearch {
        public static void main(String[] args)
        {
            // Array of prefixes
            String[] arr = { "Freaks", "for", "Freak" };
      
            // Given string
            String str = "GeeksforGeeks";
      
            boolean result = false;
      
            // Check for each prefix element
            for (int i = 0; i < 3; i++) {
                if (str.startsWith(arr[i])) {
                    result = true;
                    break;
                }
            }
      
            if (result)
                System.out.println("Given String "
                                   + "starts with one of the prefixes.");
            else
                System.out.println("Given String do not "
                                   + "starts with one of the prefixes.");
        }
    }

    Producción:

    Given String do not starts with one of the prefixes.
    
  2. Usando la expresión regular :

    Algoritmo:

    1. Obtenga la string y los prefijos con los que se hará coincidir.
    2. Forme una expresión regular para verificar si la string comienza con alguno de los prefijos. Esto se puede hacer usando el método String.matches().
    3. Si algún prefijo coincide, devuelve verdadero; de lo contrario, devuelve falso.

    Programa 1:

    class PrefixSearch {
        public static void main(String[] args)
        {
            // Array of prefixes
            String[] arr = { "Geeks", "for", "Gfor" };
      
            // Given String
            String str = "GeeksforGeeks";
      
            // Check for prefixes using Regex
            if (str.matches("(" + arr[0] + "|"
                            + arr[1] + "|"
                            + arr[2] + ").*"))
                System.out.println("Given String "
                                   + "starts with one of the prefixes.");
            else
                System.out.println("Given String do not "
                                   + "starts with one of the prefixes.");
        }
    }

    Producción:

    Given String starts with one of the prefixes.
    

    Programa 2:

    class PrefixSearch {
        public static void main(String[] args)
        {
            // Array of prefixes
            String[] arr = { "Freaks", "for", "Freak" };
      
            // Given String
            String str = "GeeksforGeeks";
      
            // Check for prefixes using Regex
            if (str.matches("(" + arr[0] + "|"
                            + arr[1] + "|"
                            + arr[2] + ").*"))
                System.out.println("Given String "
                                   + "starts with one of the prefixes.");
            else
                System.out.println("Given String do not "
                                   + "starts with one of the prefixes.");
        }
    }

    Producción:

    Given String do not starts with one of the prefixes.
    
  3. Uso de la API de secuencias de Java 8 :

    Algoritmo:

    1. Obtenga la string y los prefijos con los que se hará coincidir.
    2. Convierta los prefijos en flujousando Stream.of()
    3. Compruebe si algún prefijo coincide con Predicate str::startsWith. Esto se hace usando el método Stream.anyMatch().
    4. Si algún prefijo coincide, devuelve verdadero; de lo contrario, devuelve falso.

    Programa 1:

    import java.util.stream.Stream;
      
    class PrefixSearch {
        public static void main(String[] args)
        {
            // Array of prefixes
            String[] arr = { "Geeks", "for", "Gfor" };
      
            // Given String
            String str = "GeeksforGeeks";
      
            // Convert the Prefixes into Stream using Stream.of()
            // and check if any prefix matches using Predicate
            // str::startsWith
            if (Stream.of(arr)
                    .anyMatch(str::startsWith))
                System.out.println("Given String "
                                   + "starts with one of the prefixes.");
            else
                System.out.println("Given String do not "
                                   + "starts with one of the prefixes.");
        }
    }

    Producción:

    Given String starts with one of the prefixes.
    

    Programa 2:

    import java.util.stream.Stream;
      
    class PrefixSearch {
        public static void main(String[] args)
        {
            // Array of prefixes
            String[] arr = { "Freaks", "for", "Freak" };
      
            // Given String
            String str = "GeeksforGeeks";
      
            // Convert the Prefixes into Stream using Stream.of()
            // and check if any prefix matches using Predicate
            // str::startsWith
            if (Stream.of(arr)
                    .anyMatch(str::startsWith))
                System.out.println("Given String "
                                   + "starts with one of the prefixes.");
            else
                System.out.println("Given String do not "
                                   + "starts with one of the prefixes.");
        }
    }

    Producción:

    Given String do not starts with one of the prefixes.
    

Publicación traducida automáticamente

Artículo escrito por RishabhPrabhu 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 *