O método substring do Java é usado para extrair um fragmento de uma string. Existem duas variantes di­fe­ren­tes: pode separar a string a partir de um índice es­pe­cí­fico até ao fim, ou pode indicar onde o fragmento começa e termina.

O que é e como se usa o método substring em Java?

Em Java, pode combinar várias letras, números ou ca­rac­te­res especiais numa mesma string Java. Se quiser extrair uma secção de uma string completa, tem várias opções. Com o método string.split, pode dividir a string inteira em frag­men­tos in­di­vi­du­ais, o que lhe dará uma aparência mais clara. O método Java string substring() vai um passo além e retorna apenas um fragmento da string, que pode ser definido com um índice inicial ou um índice inicial e final. A seguir, apre­sen­ta­mos uma ex­pli­ca­ção do método e suas variantes.

Substring com beginIndex

Como pode ver na in­tro­du­ção, o método Java substring() tem duas variantes que diferem em alguns elementos. A primeira variante es­ta­be­lece um ponto de início a partir do qual a subcadeia deve ser formada. Assim, a string é separada desse ponto até o último caractere da string. A sintaxe é a seguinte:

String substring(int beginIndex)
java

Primeiro, deve decidir de qual string deseja extrair um fragmento. Em seguida, insira um número inteiro para es­pe­ci­fi­car a posição em que essa subcadeia começa. O resultado será emitido com o comando Java System.out.println. Este método funciona de forma inclusiva, pelo que o caractere que está na posição do índice também é separado. Se o valor be­gi­nIn­dex for menor que 0 ou maior que o número total de ca­rac­te­res da string, receberá um aviso de erro.

Mostramos-lhe o fun­ci­o­na­mento do método substring em Java com base num exemplo simples, no qual criámos uma string e extraímos um fragmento a partir de um ponto es­pe­cí­fico:

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));
	}
}
java

Se executar o código, obterá o seguinte:

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

Evi­den­te­mente, este método também é com­pa­tí­vel com uma sequência de números:

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));
	}
}
java

E retorna o seguinte:

Las últimas cuatro cifras son: 1142
java

Substring com beginIndex e endIndex

Com a segunda variante do método Substring do Java, pode projetar a subcadeia de forma ainda mais precisa, conforme ne­ces­sá­rio. Neste caso, não só determina onde começa a extrair a subcadeia, como também indica o ponto final. A sintaxe seria assim:

String substring(int beginIndex, int endIndex)
java

O be­gi­nIn­dex é inclusivo e o endIndex é exclusivo. Abaixo, pode ver como esta variante funciona com outro exemplo simples:

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));
	}
}
java

Assim, o resultado é o seguinte:

Este es el fragmento nuevo: un ejemplo
java

Você também pode criar fa­cil­mente uma subcadeia dentro de uma palavra. Para isso, extraímos um elemento desta lista de compras fictícia:

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));
	}
}
java

Retorna o seguinte:

Este es el fragmento nuevo: judías
java

Por último, abaixo tem outro exemplo para ver outra forma de usar o método substring do Java. Imagine que lhe enviaram os dados de contacto de um cliente num formato es­pe­cí­fico e que só quer isolar uma parte que lhe interessa. Este método é ideal para o fazer. Criamos o seguinte código:

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));
	}
}
java

O resultado é o seguinte:

Este es el correo del cliente: garciap@ejemplo.com
java
Ir para o menu principal