Funções em Java: String.substring()
- #Java
Introdução
Retorna uma string que é uma substring desta string. A substring começa com o caractere no índice especificado e se estende até o final desta string. (Plataforma Java SE 8) (oracle.com)
Esse método aceita os valores de índice inicial e final dos caracteres que você gostaria de recuperar de uma cadeia de caracteres. A cadeia de caracteres original na qual substring() é aplicada é mantida inalterada. Há duas variantes do método substring(). Este artigo descreve todos eles, da seguinte forma:
- public String substring(int beginIndex)
- public String substring(int begintIndex, int endIndex)
substring() Sintaxe
string.substring(int beginIndex, int endIndex)
begin é a posição do índice a partir da qual a substring deve começar e é inclusiva (obrigatório)
end é a posição do índice na qual a substring deve terminar e é exclusiva. Por padrão, o valor final é igual ao comprimento de uma cadeia de caracteres. (opcional)
Retorno
1 - public String substring(int beginIndex):
Esse método retorna o novo objeto String que contém a substring da cadeia de caracteres especificada de beginIndex especificado (inclusivo).
2 - public String substring(int beginIndex, int endIndex):
Esse método retorna o novo objeto String que contém a substring da cadeia de caracteres especificada de beginIndex para endIndex.
No exemplo a seguir, extraímos uma substring da posição 5 a 8 da string "HappyCoders" (a contagem começa em 0):
Ao invocar o método substring(), especificamos a posição inicial, que é 5, como o primeiro parâmetro, e a posição após a posição final, que é 9, como o segundo parâmetro:
String string = "HappyCoders";
String substring = string.substring(5,9);
System.out.println("substring = " + substring);
Como esperado, o programa imprime a substring "Code". O comprimento da substring corresponde à posição final menos a posição inicial, ou seja, 9-5 = 4.
Exemplo
public static void main(String[] args) {
String str = "www.javaelegal.com";
System.out.println("Últimos quatro caracteres: " + str.substring(str.length() - 4));
System.out.println("Quatro primeiros caracteres: " + str.substring(0, 4));
System.out.println("Nome do site: " + str.substring(4, 14));
}
}
A saída do programa de exemplo de substring acima é:
Últimos quatro caracteres: .com
Quatro primeiros caracteres: www.
Nome do site: javaelegal
Lançamento de exceções
Um StringIndexOutOfBoundsException é lançado se qualquer uma das seguintes opções for verdadeira:
- beginIndex é maior que endIndex
- beginIndex é maior que o comprimento da cadeia de caracteres original
- beginIndex ou é negativo endIndex
Substring de implementação interna(int beginIndex)
public String substring(int beginIndex) {
if (beginIndex < 0) {
throw new StringIndexOutOfBoundsException(beginIndex);
}
int subLen = value.length - beginIndex;
if (subLen < 0) {
throw new StringIndexOutOfBoundsException(subLen);
}
return (beginIndex == 0) ? this : new String(value, beginIndex, subLen);
}
Substring de implementação interna(int beginIndex, int endIndex)
public String substring(int beginIndex, int endIndex){
if (beginIndex < 0){
throw new StringIndexOutOfBoundsException(beginIndex);
}
if (endIndex > value.length){
throw new StringIndexOutOfBoundsException(endIndex);
}
int subLen = endIndex - beginIndex;
if (subLen < 0){
throw new StringIndexOutOfBoundsException(subLen);
}
return ((beginIndex == 0) && (endIndex == value.length)) ? this : new String(value, beginIndex, subLen);
}
Referências:
- String (Plataforma Java SE 8) (oracle.com)
- String.Substring Método (Java.Lang) | Microsoft Learn
- Java substring() Method - HappyCoders.eu