Atualizado: 26/07/2025

Este conteúdo é original e não foi gerado por inteligência artificial.

Introdução à Classe String em Java

Uma string representa uma sequência de caracteres. Para a manipulação de strings em Java, a linguagem oferece a classe String, que disponibiliza um conjunto de métodos para essa finalidade. Tecnicamente, um objeto String funciona como uma referência a uma área na memória onde a sequência de caracteres está armazenada.

Para instanciar uma nova string, é possível tanto usar um dos construtores da classe String quanto atribuir diretamente um literal de string (um valor entre aspas duplas):

public static void main(String[] args) {

    String str1 = "Java";
    String str2 = new String(); // Cria uma string vazia
    String str3 = new String(new char[] {'h', 'e', 'l', 'l', 'o'}); // Cria a partir de um array de caracteres
    String str4 = new String(new char[]{'w', 'e', 'l', 'c', 'o', 'm', 'e'}, 3, 4); // Onde 3 é o índice inicial e 4 é o número de caracteres

    System.out.println(str1); // Exibe: Java
    System.out.println(str2); // Exibe uma linha em branco
    System.out.println(str3); // Exibe: hello
    System.out.println(str4); // Exibe: come
}

Ao lidar com strings, é fundamental compreender que objetos da classe String são imutáveis (immutable). Isso significa que qualquer operação que aparentemente modifica uma string, na verdade, cria um novo objeto String em memória com o resultado da alteração.

Considerando que uma string é uma sequência de caracteres, o método length() pode ser aplicado para obter a sua quantidade de caracteres:

String str1 = "Java";
System.out.println(str1.length()); // Retorna 4

De forma inversa, o método toCharArray() permite converter uma string de volta para um array de caracteres:

String str1 = new String(new char[] {'h', 'e', 'l', 'l', 'o'});
char[] helloArray = str1.toCharArray();

Strings Vazias e Nulas

Uma string pode estar vazia, o que significa que ela existe como objeto, mas não contém caracteres. O comprimento de uma string vazia, retornado pelo método length(), é 0. A forma mais comum de verificar se uma string está vazia é com o método isEmpty(), que retorna true nesse caso.

String s = "";   // String vazia
if (s.isEmpty()) System.out.println("A string está vazia");

Por outro lado, uma variável String pode ter o valor null, indicando que ela não aponta para objeto algum.

String s = null;   // A variável não referencia um objeto
if (s == null) System.out.println("A string é nula");

É crucial não confundir uma string nula com uma vazia. Tentar invocar qualquer método em uma variável nula, como length() ou isEmpty(), resultará em um NullPointerException em tempo de execução.

String s = null;   // A variável não referencia um objeto
// A linha abaixo causará um erro em tempo de execução (NullPointerException)
if (s.isEmpty()) System.out.println("String is empty");    // ! Erro

Para evitar essa falha, é uma boa prática verificar se a variável é nula antes de tentar usar seus métodos. Frequentemente, a verificação é feita para ambas as condições: nula ou vazia.

String s = null;   // A variável não referencia um objeto
if (s == null || s.isEmpty()) System.out.println("A string é nula ou está vazia");

Principais Métodos da Classe String

As operações mais comuns com strings são realizadas através dos métodos da classe String. Abaixo estão alguns dos mais importantes:

  • concat(): Concatena uma string ao final de outra.
  • valueOf(): Converte diferentes tipos de dados (como números) para sua representação em string.
  • join(): Une várias strings em uma só, usando um delimitador especificado.
  • compareTo(): Compara duas strings lexicograficamente (ordem de dicionário).
  • charAt(): Retorna o caractere (char) em um índice específico da string.
  • getChars(): Copia uma sequência de caracteres da string para um array de destino.
  • equals(): Compara o conteúdo de duas strings. A comparação diferencia maiúsculas de minúsculas.
  • equalsIgnoreCase(): Compara o conteúdo de duas strings, ignorando as diferenças entre maiúsculas e minúsculas.
  • regionMatches(): Compara uma região (substring) de uma string com uma região de outra.
  • indexOf(): Retorna o índice da primeira ocorrência de um caractere ou substring.
  • lastIndexOf(): Retorna o índice da última ocorrência de um caractere ou substring.
  • startsWith(): Verifica se a string começa com um determinado prefixo (substring).
  • endsWith(): Verifica se a string termina com um determinado sufixo (substring).
  • replace(): Substitui todas as ocorrências de um caractere ou substring por outro.
  • trim(): Remove todos os espaços em branco no início e no fim da string.
  • substring(): Extrai uma nova string a partir de um índice inicial até o final ou até um índice final especificado.
  • toLowerCase(): Converte todos os caracteres da string para minúsculas.
  • toUpperCase(): Converte todos os caracteres da string para maiúsculas.

O funcionamento detalhado desses métodos será explorado a seguir.


📝 Exercícios

Tarefa 1

Qual será o resultado da execução do seguinte trecho de código?

String s = null;
if(s.isEmpty()) {
    System.out.println("A string está vazia");
} else {
    System.out.println("A string não está vazia");
}

Alternativas:

  • A string está vazia
  • A string não está vazia
  • O código não irá compilar
  • Ocorrerá um NullPointerException em tempo de execução
  • Ocorrerá um ArrayIndexOutOfBoundsException
Resposta

A resposta correta é: Ocorrerá um NullPointerException em tempo de execução.

Explicação:

Conforme explicado no artigo, uma variável com valor null não aponta para nenhum objeto na memória. O código tenta chamar o método isEmpty() em uma referência nula (s). Isso é uma operação ilegal em Java, pois não há um objeto String para executar o método, resultando em um NullPointerException. É fundamental diferenciar uma string nula de uma string vazia (""), na qual a chamada de métodos é permitida.

Tarefa 2

Qual string será exibida pelo código a seguir?

char[] caracteres = {'p', 'r', 'o', 'g', 'r', 'a', 'm', 'a', 'n', 'd', 'o'};
String s1 = new String(caracteres, 0, 8);
String s2 = " Java";
String resultado = s1.concat(s2);

System.out.println(resultado);

Alternativas:

  • programan Java
  • programando Java
  • programa Java
  • Ocorrerá um erro de compilação
  • programandoJava
Resposta

A resposta correta é: programa Java.

Explicação:

  • String s1 = new String(caracteres, 0, 8);: Esta linha usa um dos construtores da classe String mencionados no artigo. Ele cria uma nova string a partir do array caracteres, começando no índice 0 e usando 8 caracteres. Portanto, s1 se torna "programa".
  • String s2 = " Java";: A variável s2 é inicializada com o literal " Java".
  • String resultado = s1.concat(s2);: O método concat() une a string s2 ao final da string s1. A operação "programa".concat(" Java") resulta na string "programa Java".
  • Política de Privacidade

    Copyright © www.programicio.com Todos os direitos reservados

    É proibida a reprodução do conteúdo desta página sem autorização prévia do autor.

    Contato: programicio@gmail.com