image

Acesse bootcamps ilimitados e +650 cursos pra sempre

60
%OFF
Article image
Caio Santana
Caio Santana07/02/2024 20:47
Compartilhe

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):

image

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
Compartilhe
Comentários (0)