Strings
Guia Completo de Strings em Java para Iniciantes
Oi! Vamos aprender tudo sobre Strings em Java. Strings são super importantes - você vai usá-las em praticamente todo programa que escrever.
O que é uma String?
Em Java, String (com S maiúsculo mesmo!) é um tipo especial de objeto que representa uma sequência de caracteres. Diferente de tipos primitivos como int ou double, String é uma classe.
String nome = "Maria";
Percebeu que usamos aspas duplas? Isso é obrigatório em Java! Aspas simples são para caracteres individuais (char).
Criando Strings
A forma mais comum é com aspas duplas:
String saudacao = "Olá, mundo!";
String vazia = "";
String comEspacos = " Java é legal ";
Concatenação com +
Concatenar significa juntar strings. O operador + faz isso:
String parte1 = "Java";
String parte2 = " é";
String parte3 = " demais!";
String resultado = parte1 + parte2 + parte3;
System.out.println(resultado); // Java é demais!
Você pode concatenar diretamente também:
System.out.println("Olá" + " " + "turma!"); // Olá turma!
Concatenação com Variáveis
Aqui a mágica acontece - você mistura texto com variáveis:
String nome = "João";
int idade = 25;
System.out.println("Meu nome é " + nome + " e tenho " + idade + " anos.");
// Meu nome é João e tenho 25 anos.
Repare que o Java automaticamente converte o número 25 para string durante a concatenação. Muito prático!
Métodos Úteis de String
Vamos conhecer os métodos mais usados:
length() - Tamanho da string
String texto = "Java";
System.out.println(texto.length()); // 4
toUpperCase() e toLowerCase() - Mudar maiúsculas/minúsculas
String original = "Java é Show";
System.out.println(original.toUpperCase()); // JAVA É SHOW
System.out.println(original.toLowerCase()); // java é show
Importante: Esses métodos não alteram a string original, criam uma nova!
trim() - Remover espaços extras
String sujo = " Olá mundo ";
System.out.println("'" + sujo.trim() + "'"); // 'Olá mundo'
substring() - Pegar parte da string
String palavra = "Programação";
System.out.println(palavra.substring(0, 7)); // Program
// Começa no índice 0, pega 7 caracteres
System.out.println(palavra.substring(4)); // amação
// Começa do índice 4 até o final
contains() - Verificar se contém
String frase = "Aprender Java é divertido";
System.out.println(frase.contains("Java")); // true
System.out.println(frase.contains("Python")); // false
equals() e equalsIgnoreCase() - Comparar conteúdo
String str1 = "Java";
String str2 = "java";
String str3 = "Java";
System.out.println(str1.equals(str2)); // false (case sensitive)
System.out.println(str1.equalsIgnoreCase(str2)); // true (ignora maiúsculas)
System.out.println(str1.equals(str3)); // true
replace() - Substituir caracteres
String original = "Java é legal";
System.out.println(original.replace("legal", "incrível")); // Java é incrível
System.out.println(original.replace('a', 'o')); // Jovo é legol
A Grande Armadilha: == vs equals()
Esse é o erro mais comum de quem está começando! Vamos entender:
String a = "Java";
String b = "Java";
String c = new String("Java");
System.out.println(a == b); // true (por causa do pool de strings)
System.out.println(a == c); // false! (são objetos diferentes)
System.out.println(a.equals(c)); // true (compara o conteúdo)
Regra de ouro: SEMPRE use .equals() para comparar conteúdo de strings!
String senha = "1234";
String input = "1234";
// ERRADO!
if (senha == input) {
System.out.println("Nunca confie nisso!");
}
// CORRETO!
if (senha.equals(input)) {
System.out.println("Senha correta!");
}
String.valueOf() - Convertendo para String
Útil quando você quer converter outros tipos para string:
int numero = 42;
double preco = 19.99;
boolean ativo = true;
char letra = 'A';
String strNumero = String.valueOf(numero);
String strPreco = String.valueOf(preco);
String strAtivo = String.valueOf(ativo);
String strLetra = String.valueOf(letra);
System.out.println(strNumero + " - " + strPreco); // 42 - 19.99
Convertendo Números para String
Além do String.valueOf(), temos outras formas:
int valor = 100;
// Forma 1: String.valueOf()
String s1 = String.valueOf(valor);
// Forma 2: Concatenação com vazio
String s2 = valor + "";
// Forma 3: Integer.toString()
String s3 = Integer.toString(valor);
System.out.println(s1 + " " + s2 + " " + s3); // 100 100 100
Erros Comuns e Como Evitá-los
1. Usar == para comparar strings ❌
String nome1 = "Ana";
String nome2 = new String("Ana");
// ERRADO
if (nome1 == nome2) {
System.out.println("Isso pode não funcionar!");
}
// CORRETO
if (nome1.equals(nome2)) {
System.out.println("Isso sempre funciona!");
}
2. Esquecer que strings são imutáveis
String texto = "Olá";
texto.toUpperCase(); // Isso NÃO altera texto!
System.out.println(texto); // Olá
// CORRETO
texto = texto.toUpperCase();
System.out.println(texto); // OLÁ
3. Esquecer do trim() ao comparar inputs
String input = " Maria ";
String banco = "Maria";
// ERRADO (espaços extras)
if (input.equals(banco)) {
System.out.println("Usuário encontrado");
}
// CORRETO
if (input.trim().equals(banco)) {
System.out.println("Usuário encontrado");
}
Exemplo Prático Completo
Vamos ver tudo junto num programa simples:
public class ExemploString {
public static void main(String[] args) {
String nome = " João Silva ";
String email = "JOAO@EMAIL.COM";
// Limpando e preparando dados
nome = nome.trim();
email = email.toLowerCase();
System.out.println("Nome: " + nome);
System.out.println("Email: " + email);
System.out.println("Tamanho do nome: " + nome.length());
System.out.println("Começa com 'João'? " + nome.startsWith("João"));
System.out.println("Contém 'Silva'? " + nome.contains("Silva"));
// Simulando validação
String emailDigitado = "joao@email.com";
if (email.equals(emailDigitado)) {
System.out.println("Email confirmado!");
}
// Convertendo idade
int idade = 30;
String mensagem = nome + " tem " + idade + " anos";
System.out.println(mensagem);
}
}
Dicas Finais
- Sempre use equals() para comparar strings
- Strings são imutáveis - métodos criam novas strings
- Use trim() antes de comparar inputs de usuário
- Prefira concatenação com + para casos simples
- String.valueOf() é seu amigo para conversões
Strings em Java são poderosas e essenciais. Pratique esses conceitos e logo você estará manipulando textos como um profissional!