Da trilha de Java Este conceito ainda não saiu como card do dia. ir para o card de hoje

Java Strings Básico

Strings

Em Java, String é uma classe imutável: uma vez criada, seu conteúdo não pode ser alterado. Qualquer operação que pareça modificar uma string na verdade cria uma nova. Isso traz segurança e permite o compartilhamento eficiente de literais no string pool.

A classe String oferece muitos métodos úteis, como length(), charAt(), substring(), toUpperCase(), replace() e split(). Todos retornam novas strings ou valores derivados, sem tocar no objeto original.

Quando é preciso montar textos dinamicamente, concatenar com + dentro de laços pode ser custoso, pois gera muitos objetos intermediários. A classe StringBuilder resolve isso com um buffer mutável, ideal para construção eficiente de strings.

Desde o Java 15, os text blocks (""") permitem escrever strings multilinha de forma legível, sem escapes para quebras de linha e aspas. Eles são úteis para SQL, JSON, HTML e mensagens formatadas.

Pontos-chave

  • String é imutável: métodos como toUpperCase() retornam uma nova string.
  • O string pool reutiliza literais, mas new String("...") cria um objeto separado.
  • Prefira StringBuilder para concatenar muitas strings em laços.
  • Text blocks (""") simplificam strings com várias linhas.
  • Use equals() para comparar conteúdo, nunca ==.
StringsDemo.java
public class StringsDemo {
    public static void main(String[] args) {
        // Imutabilidade: o método retorna uma nova string
        String original = "java";
        String maiuscula = original.toUpperCase();
        System.out.println("original = " + original);   // java
        System.out.println("maiuscula = " + maiuscula); // JAVA

        // Métodos comuns de String
        String frase = "  Programar em Java é divertido  ";
        System.out.println("comprimento: " + frase.length());
        System.out.println("trim: '" + frase.trim() + "'");
        System.out.println("substring: " + frase.trim().substring(0, 9));
        System.out.println("contém 'Java': " + frase.contains("Java"));

        // StringBuilder: construção eficiente
        StringBuilder sb = new StringBuilder();
        for (int i = 1; i <= 5; i++) {
            sb.append(i).append(" ");
        }
        System.out.println("StringBuilder: " + sb.toString().trim());

        // Text block: string multilinha
        String json = """
                {
                  "linguagem": "Java",
                  "ano": 1995
                }
                """;
        System.out.println("Text block:\n" + json);
    }
}

Exercícios

  1. 1
    Fácil

    Inverter string com StringBuilder

    Escreva um programa que leia uma palavra e imprima a palavra invertida usando StringBuilder. Depois imprima também a palavra original para provar que ela não foi alterada.

    Resolver
  2. 2
    Médio

    Contar vogais e consoantes

    Leia uma frase e conte quantas vogais e quantas consoantes ela possui, ignorando espaços e caracteres não alfabéticos. Considere apenas letras de A a Z (maiúsculas ou minúsculas).

    Resolver
  3. 3
    Desafio

    Relatório formatado com text block e StringBuilder

    Leia três linhas: nome do produto, preço unitário e quantidade. Calcule o total e gere um relatório formatado usando um text block para o cabeçalho e StringBuilder para montar as linhas de dados. Formate o preço com duas casas decimais usando String.format.

    Resolver

Continue estudando