AFF Education Construa seu Futuro

Aula 35 - Métodos Aplicados a String

Trabalhando com Strings em Java

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
O segundo parâmetro é exclusivo
"Ananda".replace("a", "o") = Anondo
" Ananda ".trim() = Ananda
"Ananda".charAt(3) = n
"Ananda".contains("nanda") = true
"Ananda".equalsIgnoreCase("ananda") = true

Principais Métodos da Classe String

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

Exemplos Práticos de Métodos de String

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

Atividade prática

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);
  }
}
        

Comparando Strings

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.

Exercícios

Teste seus conhecimentos sobre os métodos de String em Java:

1. Qual método é usado para remover espaços em branco no início e fim de uma String?

2. Qual método retorna um valor booleano ao verificar se uma String contém uma determinada sequência?

3. Para comparar duas Strings ignorando diferenças entre maiúsculas e minúsculas, qual método deve ser usado?

4. Qual é o resultado da expressão "Java".charAt(2)?

5. Qual será o resultado do código abaixo?

String nome = " Ananda ";
int tamanho1 = nome.length();
int tamanho2 = nome.trim().length();
String resultado = nome.trim().toUpperCase().replace("A", "O");
System.out.println(tamanho1 + " " + tamanho2 + " " + resultado);

Exercícios de Aplicação AFF Education

Reforce o conteúdo desta aula com mais dois exercícios práticos:

1. Sendo String s = "Java";, qual o valor de s.length()?

2. Qual o resultado de "Olá".toUpperCase()?