# Java string substring(): variantes y funcionamiento del método

El método substring de Java se usa para extraer un fragmento de un string. Existen dos variantes diferentes: puedes separar el string a partir de un índice concreto hasta el final, o puedes indicar dónde empieza y dónde acaba el fragmento.

## ¿Qué es y cómo se usa el método `substring` en Java?

En Java puedes combinar múltiples letras, cifras o caracteres especiales en un mismo [string de Java](https://www.ionos.com/es-us/digitalguide/paginas-web/desarrollo-web/java-strings/). Si quieres extraer una sección de un string completo, tienes múltiples opciones. Con el método de [string.split](https://www.ionos.com/es-us/digitalguide/paginas-web/desarrollo-web/java-string-split/) puedes dividir el string entero en fragmentos individuales, lo que le otorgará un aspecto más claro. El método de Java string substring() va un paso más allá y te devuelve solo un fragmento del string, que puedes definir con un **índice de inicio o un índice de inicio y final**. A continuación, dispones de una explicación del método y sus variantes.

## `Substring` con `beginIndex`

Como puedes ver en la introducción, el método de Java substring() cuenta con dos variantes que se diferencian en algunos elementos. La primera variante **establece un punto de inicio** a partir del cual debe formarse la subcadena. Así, se separa el string desde ese punto hasta el último carácter del string. La sintaxis es la siguiente:

```java
String substring(int beginIndex)
```

Primero debes decidir a qué string quieres extraerle un fragmento. Luego, introduce un número entero para especificar la posición en la que empieza esa subcadena. El resultado se emitirá con el [comando de Java](https://www.ionos.com/es-us/digitalguide/paginas-web/desarrollo-web/comandos-java/) `System.out.println`. Este método **funciona de manera inclusiva**, así que el carácter que está en la posición del índice también se separa. Si el valor beginIndex es menor a 0 o mayor al número total de caracteres del string, recibirás un aviso de error.

Te mostramos el funcionamiento del método substring en Java en base de un sencillo ejemplo, en el cual hemos creado un string y extraemos un fragmento a partir de un punto concreto:

```java
public class Main {
	public static void main(String args[]) {
	String Str = new String("Esto es un ejemplo. Ahora empieza una segunda frase.");
	System.out.print("Este es el fragmento nuevo: ");
	System.out.println(Str.substring(20));
	}
}
```

Si ejecutas el código, obtendrás lo siguiente:

```java
Este es el fragmento nuevo: Ahora empieza una segunda frase.
```

Evidentemente este método también es compatible con un string de números:

```java
public class Main {
	public static void main(String args[]) {
	String Str = new String("192.448.782.1142");
	System.out.print("´Las últimas cuatro cifras son: ");
	System.out.println(Str.substring(12));
	}
}
```

Y devuelve lo siguiente:

```java
Las últimas cuatro cifras son: 1142
```

## `Substring` con `beginIndex` y `endIndex`

Con la segunda variante del método Substring de Java puedes diseñar la subcadena de forma aún más precisa según requieras. En este caso no solo determinas dónde se empieza a extraer la subcadena, **también indicas el punto final**. La sintaxis sería así:

```java
String substring(int beginIndex, int endIndex)
```

El beginIndex es inclusivo y el endIndex es excluyente. Abajo puedes ver cómo funciona esta variante con otro ejemplo sencillo:

```java
public class Main {
	public static void main(String args[]) {
	String Str = new String("Esto es un ejemplo. Ahora empieza una segunda frase.");
	System.out.print("Este es el fragmento nuevo: ");
	System.out.println(Str.substring(8, 20));
	}
}
```

Así el resultado es el siguiente:

```java
Este es el fragmento nuevo: un ejemplo
```

También puedes crear fácilmente una subcadena dentro de una palabra. Para ello, extraemos un elemento de esta lista de la compra ficticia:

```java
public class Main {
	public static void main(String args[]) {
	String Str = new String("huevos, leche, judías, beicon y harina");
	System.out.print("Este es el fragmento nuevo: ");
	System.out.println(Str.substring(15, 21));
	}
}
```

Te devuelve lo siguiente:

```java
Este es el fragmento nuevo: judías
```

Por último, abajo tienes otro ejemplo para que veas otra forma de uso del método substring de Java. Imagina que te han enviado los datos de contacto de un cliente en un formato concreto y que solo quieres aislar una parte que te interesa. Este método es ideal para hacerlo. Creamos el siguiente código:

```java
public class Main {
	public static void main(String args[]) {
	String Str = new String("247: García, Pedro|garciap@ejemplo.com|Madrid|12.04.1972");
	System.out.print("Este es el correo del cliente: ");
	System.out.println(Str.substring(19, 38));
	}
}
```

El resultado es el siguiente:

```java
Este es el correo del cliente: garciap@ejemplo.com
```


This is a markdown version of: [https://www.ionos.com/es-us/digitalguide/paginas-web/desarrollo-web/java-string-substring/](https://www.ionos.com/es-us/digitalguide/paginas-web/desarrollo-web/java-string-substring/) for AI/LLM consumption.