Article image
Luciano Gonçalves
Luciano Gonçalves08/02/2024 23:46
Compartilhe

Funções Java - Como utilizar substrings

  • #Java

Introdução às Substrings

Uma substring é uma parte ou segmento específico de uma string original. A substring mantém a ordem dos caracteres na sequência original e é identificada pelo seu início e fim na string principal.

Em muitas linguagens de programação, incluindo Java, a manipulação de substrings é comumente realizada usando métodos específicos de strings, como o método substring().

O início e fim da substring são determinados pelo seus respectivos índices, ou seja, sua posição na cadeia de caracteres contando a partir de zero.

Conforme descrito na documentação, o método substring() pode ser invocado com apenas um argumento do tipo inteiro. Nesse cenário, a substring é gerada a partir do índice fornecido até o final da string original, o qual é equivalente ao tamanho da string menos um, considerando a base zero dos índices. Por exemplo, considerando a string "Hello World", se solicitarmos uma substring a partir do índice 6, o resultado será "World".

Quando tentamos acessar uma posição inexistente na string, ou seja, se o índice fornecido for maior que o tamanho da string menos um ou se o índice for negativo, uma exceção do tipo IndexOutOfBoundsException será lançada.

public class App 
{
 public static void main( String[] args )
 {
 String texto = "Hello World";
 System.out.println(texto.substring(6));
 }
}

Resultado

World

O uso mais frequente da função envolve a sobrecarga que aceita dois parâmetros, especificando o início e o fim da substring. Essa forma permite uma flexibilidade maior ao extrair porções específicas da string original, delimitando com precisão o intervalo desejado.

Por exemplo, considere a string "nome: Luciano Santos Alcântara da Silva". Algumas substrings dessa string seriam:

• Substring de índice 0 a 5: "nome: "

• Substring de índice 6 a 13: "Luciano"

• Substring de índice 14 a 20: "Santos"

• Substring de índice 10 a 17: "ano San"

Os códigos para implementar seriam:

public class App 
{
public static void main( String[] args )
{
  String texto = "nome: Luciano Santos Alcântara da Silva";
  System.out.println("String original: " + texto);
  System.out.println(texto.substring(0, 5));
  System.out.println(texto.substring(6, texto.indexOf(" ", 6)));
  System.out.println(texto.substring(14, 20));
  System.out.println(texto.substring(10, 17));
}
}

Funções de String Relacionadas

Comumente, a utilização da função substring() se integra a outras funções para a manipulação eficaz de textos, especialmente quando os valores da substring são dinâmicos. Nesse contexto, diversas funções auxiliares desempenham papéis cruciais na construção e análise de strings. Algumas destas funções frequentemente empregadas incluem:

length()

Obtem o tamanho de uma string

public class App 
{
public static void main( String[] args )
{
  String texto = " --- Hello World --- ";
  System.out.println("O tamanho da string é: " + texto.length());
  System.out.println("Substring sem os ultimos caracteres: " + texto.substring(6, texto.length() - 6));
}
}

Resultado

O tamanho da string é: 23
Substring sem os ultimos caracteres: Hello World

toUpperCase() e toLowerCase()

Essas duas funções transformam a caixa dos caracteres para caixa alta e caia baixa respectivamente.

indexOf()

Retorna o índice da primeira ocorrência de um determinado trecho

public class App 
{
public static void main( String[] args )
{
  String texto = " --- Hello World --- ";
  System.out.println("A primeira ocorrencia de hello está em: " + texto.indexOf("Hello"));
  System.out.println("Substring a partir de trecho conhecido: " + texto.substring(texto.indexOf("Hello")));
}
}

Resultado

A primeira ocorrencia de hello está em: 6
Substring a partir de trecho conhecido: Hello World ---

charAt()

Retorna o caracter de um determinado indice.

public class App 
{
public static void main( String[] args )
{
  String texto = "luCiAno saNTos siLVa amAral";

  System.out.println("String original: " + texto);
  System.out.println("Primeiro Nome: " + texto.toUpperCase().charAt(0)
      + texto.toLowerCase().substring(1, texto.indexOf(" ")));
  System.out.println("Segundo Nome: " + texto.toUpperCase().charAt(texto.indexOf(" ") + 1)
      + texto.toLowerCase().substring(texto.indexOf(" ") + 2, texto.indexOf(" ", texto.indexOf(" ") + 1)));
}
}

Resultado:

String original: luCiAno saNTos siLVa amAral
Primeiro Nome: Luciano
Segundo Nome: Santos

Onde usar?

Vejamos alguns exemplos do cotidiano aplicando a função de substring

1. Extração de Informações de Strings de Dados:

  • Ao trabalhar com dados em formato de string, como datas ou códigos de identificação, você pode usar substrings para extrair partes específicas. Por exemplo, ao manipular a data "2024-02-08", você pode extrair o ano, mês ou dia usando substrings.
javaCopy code
String dataCompleta = "2024-02-08";
String ano = dataCompleta.substring(0, 4);
String mes = dataCompleta.substring(5, 7);
String dia = dataCompleta.substring(8);

2. Validação de Entrada do Usuário:

  • Ao validar informações inseridas pelo usuário, você pode usar substrings para verificar se uma determinada parte da entrada atende aos requisitos. Por exemplo, ao validar um número de telefone, você pode extrair o código de área usando substrings.
javaCopy code
String numeroTelefone = "123-456-7890";
String codigoArea = numeroTelefone.substring(0, 3);

3. Formatação de Strings:

  • Ao formatar strings para exibição, substrings podem ser úteis para limitar o comprimento de uma string ou para exibir apenas uma parte dela.
javaCopy code
String textoLongo = "Este é um texto muito longo que precisa ser truncado.";
String parteCurta = textoLongo.substring(0, 20) + "...";

4. Análise de Log de Arquivos:

  • Ao analisar logs ou arquivos de registros, substrings podem ser usadas para extrair informações específicas, como timestamps ou mensagens de erro.
javaCopy code
String linhaLog = "2024-02-08 15:30:45 - ERRO: Falha na conexão";
String timestamp = linhaLog.substring(0, 19);
String mensagemErro = linhaLog.substring(23);

5. Manipulação de Códigos de Barras ou QR Codes:

  • Ao trabalhar com códigos de barras ou QR codes, substrings podem ser usadas para extrair informações específicas, como identificadores ou números de série.
javaCopy code
String codigoBarras = "ABC123456DEF";
String identificador = codigoBarras.substring(3, 9);

Conclusão

A manipulação de strings desempenha um papel essencial na programação em Java, integrando-se de maneira orgânica ao dia a dia do desenvolvedor. Com um conjunto reduzido de sobrecargas, torna-se viável realizar uma ampla gama de operações. Espero que este conteúdo tenha proporcionado esclarecimentos úteis sobre o uso das substrings, enriquecendo sua compreensão das ferramentas disponíveis para manipulação de texto em Java.

Compartilhe
Comentários (1)

LF

Lucas Feitosa - 28/02/2024 14:23

Ótimo artigo!! As informações ficaram bem estruturadas e ainda teve exemplos simples e reais de onde utilizar as funções de substring.


Só uma observação a fazer acerca do index final da substring: ele não referencia o index do último caractere da substring que você quer, mas o index seguinte, ou seja, se você quer pegar uma substring da posição 3 até a posição 10, utiliza substring(3, 11) . Acho que seria bom ter essa informação porque no texto deu a entender que seria o index do primeiro e do ultimo caractere que quero.


Bom trabalho!