Em Java, String é uma classe que representa uma sequência de caracteres. A classe String possui muitos métodos úteis para manipular e processar texto.
String em Java não é apenas um tipo de dado (como char, boolean, etc), mas uma classe com vários métodos embutidos. Sim, a afirmação está correta: em Java, String não é um tipo de dado primitivo (como int, char ou boolean), mas sim uma classe que pertence ao pacote java.lang. Isso significa que as strings são tratadas como objetos.
Características das Strings em Java:
"Ananda".length() = 6" Ananda ".length() = 8"Ananda".toUpperCase() = ANANDA"Ananda".toLowerCase() = ananda"Ananda".indexOf("A") = 0"Ananda".indexOf("n") = 1"Ananda".substring(0,3) = Ana"Ananda".replace("a", "o") = Anondo" Ananda ".trim() = Ananda"Ananda".charAt(3) = n"Ananda".contains("nanda") = true"Ananda".equalsIgnoreCase("ananda") = true| Método | Descrição | Exemplo |
|---|---|---|
| length() | Retorna o tamanho da String (quantidade de caracteres) | "Java".length() → 4 |
| charAt(int index) | Retorna o caractere na posição especificada | "Java".charAt(1) → 'a' |
| toUpperCase() | Converte a String para maiúsculas | "Java".toUpperCase() → "JAVA" |
| toLowerCase() | Converte a String para minúsculas | "Java".toLowerCase() → "java" |
| equals(Object obj) | Compara o conteúdo de duas Strings | "Java".equals("java") → false |
| equalsIgnoreCase(String str) | Compara Strings ignorando maiúsculas/minúsculas | "Java".equalsIgnoreCase("java") → true |
| trim() | Remove espaços no início e fim | " Java ".trim() → "Java" |
| contains(CharSequence s) | Verifica se contém uma determinada sequência | "Java".contains("av") → true |
| indexOf(String str) | Retorna a posição da primeira ocorrência | "Java".indexOf("a") → 1 |
| substring(int beginIndex) | Extrai uma parte da String a partir da posição | "Java".substring(2) → "va" |
| substring(int beginIndex, int endIndex) | Extrai uma parte da String entre posições | "Java".substring(1, 3) → "av" |
| replace(char oldChar, char newChar) | Substitui caracteres | "Java".replace('a', 'o') → "Jovo" |
| replace(CharSequence target, CharSequence replacement) | Substitui sequências | "Java".replace("va", "vo") → "Javo" |
| split(String regex) | Divide a String em partes com base no separador | "a,b,c".split(",") → ["a", "b", "c"] |
| startsWith(String prefix) | Verifica se a String começa com determinado prefixo | "Java".startsWith("Ja") → true |
| endsWith(String suffix) | Verifica se a String termina com determinado sufixo | "Java".endsWith("va") → true |
public class ExemplosMetodosString {
public static void main(String[] args) {
String texto = " Java é uma linguagem de programação incrível! ";
// Obtendo o tamanho da String
int tamanho = texto.length();
System.out.println("Texto original: \"" + texto + "\"");
System.out.println("Tamanho do texto: " + tamanho);
// Convertendo para maiúsculas e minúsculas
String maiusculas = texto.toUpperCase();
String minusculas = texto.toLowerCase();
System.out.println("\nEm maiúsculas: " + maiusculas);
System.out.println("Em minúsculas: " + minusculas);
// Removendo espaços em branco no início e fim
String semEspacos = texto.trim();
System.out.println("\nSem espaços nas extremidades: \"" + semEspacos + "\"");
System.out.println("Tamanho após trim: " + semEspacos.length());
// Obtendo um caractere específico
char primeiroChar = semEspacos.charAt(0);
System.out.println("\nPrimeiro caractere: " + primeiroChar);
// Verificando se contém uma substring
boolean contemJava = semEspacos.contains("Java");
boolean contemPython = semEspacos.contains("Python");
System.out.println("\nContém \"Java\": " + contemJava);
System.out.println("Contém \"Python\": " + contemPython);
// Encontrando a posição de uma substring
int posicaoJava = semEspacos.indexOf("Java");
int posicaoProgramacao = semEspacos.indexOf("programação");
System.out.println("\nPosição de \"Java\": " + posicaoJava);
System.out.println("Posição de \"programação\": " + posicaoProgramacao);
// Extraindo uma parte da String
String primeiras10Letras = semEspacos.substring(0, 10);
System.out.println("\nPrimeiras 10 letras: \"" + primeiras10Letras + "\"");
// Substituindo partes da String
String textoSubstituido = semEspacos.replace("Java", "Kotlin");
System.out.println("\nTexto com substituição: \"" + textoSubstituido + "\"");
// Verificando início e fim
boolean comecaComJava = semEspacos.startsWith("Java");
boolean terminaComExclamacao = semEspacos.endsWith("!");
System.out.println("\nComeça com \"Java\": " + comecaComJava);
System.out.println("Termina com \"!\": " + terminaComExclamacao);
}
}
Texto original: " Java é uma linguagem de programação incrível! "
Tamanho do texto: 47
Em maiúsculas: JAVA É UMA LINGUAGEM DE PROGRAMAÇÃO INCRÍVEL!
Em minúsculas: java é uma linguagem de programação incrível!
Sem espaços nas extremidades: "Java é uma linguagem de programação incrível!"
Tamanho após trim: 45
Primeiro caractere: J
Contém "Java": true
Contém "Python": false
Posição de "Java": 0
Posição de "programação": 25
Primeiras 10 letras: "Java é uma"
Texto com substituição: "Kotlin é uma linguagem de programação incrível!"
Começa com "Java": true
Termina com "!": true
Abra o One Compiler para Java: clique aqui!
Execute o código abaixo no One Compiler e observe os resultados. Compare as diferenças de resultados com aqueles do código acima.
public class ExemplosMetodosString {
public static void main(String[] args) {
String texto = " Java e uma linguagem de programacao incrivel! ";
// Obtendo o tamanho da String
int tamanho = texto.length();
System.out.println("Texto original: \"" + texto + "\"");
System.out.println("Tamanho do texto: " + tamanho);
String semEspacos = texto.trim();
System.out.println("\nSem espaços nas extremidades: \"" + semEspacos + "\"");
System.out.println("Tamanho apos trim: " + semEspacos.length());
String texto2 = " Ana Julia tem que sair do celular e estudar mais! ";
// Obtendo o tamanho da String
int tamanho2 = texto2.length();
System.out.println("Texto original: \"" + texto2 + "\"");
System.out.println("Tamanho do texto: " + tamanho2);
String semEspacos2 = texto2.trim();
System.out.println("\nSem espaços nas extremidades: \"" + semEspacos2 + "\"");
System.out.println("Tamanho apos trim: " + semEspacos2.length());
String texto2TudoMaiusculo = texto2.toUpperCase();
System.out.println("Texto com letras maiusculas: " + texto2TudoMaiusculo);
String texto2TudoMinusculo = texto2.toLowerCase();
System.out.println("Texto com letras minusculos: " + texto2TudoMinusculo);
boolean contemJulia = texto2.contains("Julia");
System.out.println(contemJulia);
int indiceJuliaTexto2 = texto2.indexOf("Julia");
System.out.println(indiceJuliaTexto2);
int indiceJTexto2 = texto2.indexOf("J");
System.out.println(indiceJTexto2);
String nomeSobrenome = texto2.substring(1,9);
System.out.println(nomeSobrenome);
}
}
public class ComparacaoStrings {
public static void main(String[] args) {
// Criando Strings
String str1 = "Java";
String str2 = "java";
String str3 = "Java";
String str4 = new String("Java"); // Criando uma nova instância com o operador 'new'
// Comparando com o operador ==
System.out.println("Usando operador ==:");
System.out.println("str1 == str2? " + (str1 == str2)); // false - conteúdo e referências diferentes
System.out.println("str1 == str3? " + (str1 == str3)); // true - mesma referência do pool de Strings
System.out.println("str1 == str4? " + (str1 == str4)); // false - referências diferentes (new cria uma nova instância)
// Comparando com o método equals (compara conteúdo)
System.out.println("\nUsando método equals():");
System.out.println("str1.equals(str2)? " + str1.equals(str2)); // false - conteúdo diferente (maiúsculas/minúsculas)
System.out.println("str1.equals(str3)? " + str1.equals(str3)); // true - mesmo conteúdo
System.out.println("str1.equals(str4)? " + str1.equals(str4)); // true - mesmo conteúdo
// Comparando ignorando maiúsculas/minúsculas
System.out.println("\nUsando método equalsIgnoreCase():");
System.out.println("str1.equalsIgnoreCase(str2)? " + str1.equalsIgnoreCase(str2)); // true
}
Usando operador ==:
str1 == str2? false
str1 == str3? true
str1 == str4? false
Usando método equals():
str1.equals(str2)? false
str1.equals(str3)? true
str1.equals(str4)? true
Usando método equalsIgnoreCase():
str1.equalsIgnoreCase(str2)? true
Importante: Ao comparar Strings em Java, sempre use os métodos equals() ou equalsIgnoreCase() para comparar o conteúdo, e não o operador ==, que compara as referências dos objetos.
Teste seus conhecimentos sobre os métodos de String em Java:
Reforce o conteúdo desta aula com mais dois exercícios práticos: