Analizar una cadena en Java

  1. Utilice el método split para analizar una cadena en Java
  2. Utilice Scanner para analizar una cadena en Java
  3. Utilice StringUtils para analizar una cadena en Java

Este tutorial explica cómo analizar una cadena en Java utilizando varios métodos. El análisis es el proceso de tomar una cadena y procesarla para extraer información.

Utilice el método split para analizar una cadena en Java

El método split() de la clase String funciona dividiendo la cadena fuente manteniendo la cadena original sin modificar, y devuelve un array de subcadenas de la cadena original. Este método tiene dos variantes.

El método split(String regex) toma una expresión regular de tipo string como argumento y divide la cadena alrededor de las coincidencias de la expresión regular. Si la expresión regular no coincide con ninguna parte de la cadena original, devuelve un array con un elemento: la cadena fuente.

El método split(String regex, int limit) funciona igual pero toma limit, lo que significa cuántas cadenas se devolverán. Si el límite es negativo, el array devuelta puede contener tantas subcadenas como sea posible cuando el límite es 0. El array contendría todas las subcadenas, excluyendo las cadenas vacías finales.

public class StringTest {
    public static void main(String args []){
        String source1 = "March032021";
        String [] returnedArray1 = source1.split("\\d+");
        for(String str1 :  returnedArray1){
            System.out.println(" Output1 : "+str1);
        }
        String source2 = "950-003-123-900-456 : 11 _343-1 789----";
        String [] returnedArray2 = source2.split("-",4);
        for(String str2 :  returnedArray2){
            System.out.println(" Output2 : "+str2);
        }

    }
}

Producción:

Output1 : March
 Output2 : 705
 Output2 : 103
 Output2 : 102
 Output2 : 456-123 : 112 _343-1 789----

Utilice Scanner para analizar una cadena en Java

Scanner se usa generalmente para analizar tipos primitivos y cadenas usando una expresión regular. Divide la entrada en tokens utilizando un patrón delimitador que es un espacio en blanco coincidente por defecto.

Creamos un Scanner con un objeto de cadena especificado. El método useDelimiter() de la clase Scanner se utiliza para establecer el patrón delimitador. Podemos pasar un objeto Patrón o una cadena como patrón. Para obtener todos los tokens de la cadena, recorremos los tokens usando el método hasNext() e imprimimos el resultado.

import java.util.Scanner;
public class StringTest {
    public static void main (String args[]){
        String text = "John Evans was born on 25-08-1980";
        Scanner scanner = new Scanner(text);
        scanner.useDelimiter("born");
        while (scanner.hasNext()){
            System.out.println("Output is : "+scanner.next());
        }
    }
}

Producción:

Output is : John Evans was 
Output is :  on 25-08-1980

Utilice StringUtils para analizar una cadena en Java

La clase StringUtils de Apache Commons proporciona herramientas que facilitan el trabajo con Strings. La dependencia de maven para agregar esta biblioteca se proporciona a continuación.

<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.11</version>
</dependency>

Usamos el método substringBetween(String str, String open, String close) de la clase StringUtils para analizar una cadena dada. Este método extrae una subcadena anidada entre dos cadenas.

import org.apache.commons.lang3.StringUtils;

public class StringTest {
    public static void main(String args[]) {
        String source = "The crazy brown dog jumps over the fence";
        String[] stringArray = StringUtils.substringsBetween(source, "crazy", "over");
        for (String s : stringArray) {
            System.out.println("Output : " + s);
        }
    }
}

Producción:

Output :  brown dog jumps 

Artículo relacionado - Java String

  • Reemplazar el carácter en la cadena en el índice en Java
  • Convertir un InputStream en una cadena en Java