Extraindo Informações de Strings em Java
Deslize para mostrar o menu
Ao trabalhar com texto em aplicações reais, raramente é necessário utilizar a string inteira — na maioria das vezes, você precisa apenas de uma pequena parte dela. Um nome dentro de um e-mail, um produto em uma mensagem de pedido ou uma palavra-chave específica escondida em uma frase. O Java oferece ferramentas simples, mas poderosas, para extrair exatamente o que precisamos.
substring()
Quando for necessário obter um "recorte" de uma string com base nas posições dos caracteres, utilize .substring(). Esse método utiliza indexação baseada em zero — a contagem começa em 0. Ele retorna uma nova String.
Main.java
123456789101112package com.example; public class Main { public static void main(String[] args) { String order = "Large Latte with oat milk"; String drinkName = order.substring(6, 11); System.out.println(drinkName); } }
substring(6, 11) instrui o Java a começar no índice 6 (incluído) e parar logo antes do índice 11 (excluído) — extraindo os caracteres nas posições de 6 a 10, o que resulta em "Latte".
Se você usar substring(start) com apenas um argumento, o Java extrai tudo a partir dessa posição até o final da string:
order.substring(6); // "Latte with oat milk"
indexOf()
Para localizar onde um texto específico está dentro de uma string, utilize .indexOf(). Em vez de cortar o texto, ele localiza. Retorna um int representando o índice inicial da correspondência.
Main.java
123456789101112package com.example; public class Main { public static void main(String[] args) { String order = "Large Latte with oat milk"; int lattePosition = order.indexOf("Latte"); System.out.println(lattePosition); } }
Java percorre a string da esquerda para a direita até encontrar "Latte" e retorna a posição do seu primeiro caractere — 6. Se o texto não for encontrado em nenhum lugar da string, Java retorna -1.
Combinando Ambos — Exemplo Real
Este exemplo real combina indexOf() e substring() para extrair um nome de usuário de um endereço de e-mail.
Main.java
1234567891011121314package com.example; public class Main { public static void main(String[] args) { String customerEmail = "anna.coffee@gmail.com"; int atPosition = customerEmail.indexOf("@"); String username = customerEmail.substring(0, atPosition); System.out.println(username); } }
indexOf("@") encontra a posição do símbolo @, então substring(0, atPosition) extrai tudo desde o início da string até — mas não incluindo — o @. O resultado é "anna.coffee". Em vez de fixar posições manualmente, deixamos o Java localizar o limite e extrair exatamente o que precisamos.
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
Extraindo Informações de Strings em Java
Ao trabalhar com texto em aplicações reais, raramente é necessário utilizar a string inteira — na maioria das vezes, você precisa apenas de uma pequena parte dela. Um nome dentro de um e-mail, um produto em uma mensagem de pedido ou uma palavra-chave específica escondida em uma frase. O Java oferece ferramentas simples, mas poderosas, para extrair exatamente o que precisamos.
substring()
Quando for necessário obter um "recorte" de uma string com base nas posições dos caracteres, utilize .substring(). Esse método utiliza indexação baseada em zero — a contagem começa em 0. Ele retorna uma nova String.
Main.java
123456789101112package com.example; public class Main { public static void main(String[] args) { String order = "Large Latte with oat milk"; String drinkName = order.substring(6, 11); System.out.println(drinkName); } }
substring(6, 11) instrui o Java a começar no índice 6 (incluído) e parar logo antes do índice 11 (excluído) — extraindo os caracteres nas posições de 6 a 10, o que resulta em "Latte".
Se você usar substring(start) com apenas um argumento, o Java extrai tudo a partir dessa posição até o final da string:
order.substring(6); // "Latte with oat milk"
indexOf()
Para localizar onde um texto específico está dentro de uma string, utilize .indexOf(). Em vez de cortar o texto, ele localiza. Retorna um int representando o índice inicial da correspondência.
Main.java
123456789101112package com.example; public class Main { public static void main(String[] args) { String order = "Large Latte with oat milk"; int lattePosition = order.indexOf("Latte"); System.out.println(lattePosition); } }
Java percorre a string da esquerda para a direita até encontrar "Latte" e retorna a posição do seu primeiro caractere — 6. Se o texto não for encontrado em nenhum lugar da string, Java retorna -1.
Combinando Ambos — Exemplo Real
Este exemplo real combina indexOf() e substring() para extrair um nome de usuário de um endereço de e-mail.
Main.java
1234567891011121314package com.example; public class Main { public static void main(String[] args) { String customerEmail = "anna.coffee@gmail.com"; int atPosition = customerEmail.indexOf("@"); String username = customerEmail.substring(0, atPosition); System.out.println(username); } }
indexOf("@") encontra a posição do símbolo @, então substring(0, atPosition) extrai tudo desde o início da string até — mas não incluindo — o @. O resultado é "anna.coffee". Em vez de fixar posições manualmente, deixamos o Java localizar o limite e extrair exatamente o que precisamos.
Obrigado pelo seu feedback!