Introdução
Neste laboratório, você aprenderá como verificar se uma string termina com um sufixo específico em Java. Esta é uma habilidade fundamental para tarefas como validar tipos de arquivos ou analisar dados com base em sua terminação. Você explorará o método endsWith(), entenderá sua sensibilidade a maiúsculas e minúsculas e aprenderá como combiná-lo com startsWith() para verificações mais complexas. Através de exemplos práticos, você obterá experiência prática no uso dessas técnicas de manipulação de strings em seus programas Java.
Usar endsWith() para Verificar o Sufixo
Nesta etapa, exploraremos como usar o método endsWith() em Java para verificar se uma string termina com um sufixo específico. Esta é uma tarefa comum quando você precisa validar extensões de arquivos, verificar padrões específicos ou processar dados com base em sua terminação.
O método endsWith() faz parte da classe String em Java. Ele recebe um único argumento, que é o sufixo que você deseja verificar, e retorna um valor booleano: true se a string terminar com o sufixo especificado e false caso contrário.
Vamos criar um programa Java simples para demonstrar como endsWith() funciona.
Abra o arquivo
HelloJava.javano editor WebIDE. Se você não o tiver aberto, pode encontrá-lo no File Explorer (Explorador de Arquivos) à esquerda, dentro da pastaproject.Substitua o código existente em
HelloJava.javapelo seguinte:public class HelloJava { public static void main(String[] args) { String fileName = "document.txt"; boolean endsWithTxt = fileName.endsWith(".txt"); System.out.println("Does '" + fileName + "' end with '.txt'? " + endsWithTxt); String imageUrl = "photo.jpg"; boolean endsWithJpg = imageUrl.endsWith(".jpg"); System.out.println("Does '" + imageUrl + "' end with '.jpg'? " + endsWithJpg); String documentName = "report.pdf"; boolean endsWithDoc = documentName.endsWith(".doc"); System.out.println("Does '" + documentName + "' end with '.doc'? " + endsWithDoc); } }Neste código:
- Declaramos três variáveis
String:fileName,imageUrledocumentName. - Usamos o método
endsWith()em cada string para verificar se ela termina com um sufixo específico (.txt,.jpg,.doc). - Os resultados (
trueoufalse) são armazenados em variáveis booleanas (endsWithTxt,endsWithJpg,endsWithDoc). - Finalmente, imprimimos os resultados no console usando
System.out.println().
- Declaramos três variáveis
Salve o arquivo
HelloJava.java(Ctrl+S ou Cmd+S).Agora, vamos compilar o programa. Abra o Terminal na parte inferior do WebIDE e certifique-se de estar no diretório
~/project. Em seguida, execute o seguinte comando:javac HelloJava.javaSe não houver erros, a compilação será concluída silenciosamente e um arquivo
HelloJava.classserá criado no diretório~/project.Finalmente, execute o programa compilado usando o comando
java:java HelloJavaVocê deve ver uma saída semelhante a esta:
Does 'document.txt' end with '.txt'? true Does 'photo.jpg' end with '.jpg'? true Does 'report.pdf' end with '.doc'? falseEsta saída mostra os resultados de nossas verificações
endsWith(), confirmando quedocument.txttermina com.txt,photo.jpgtermina com.jpgereport.pdfnão termina com.doc.
Você usou com sucesso o método endsWith() para verificar sufixos de strings. Esta é uma operação fundamental que você usará com frequência na programação Java.
Testar Sufixo com Sensibilidade a Maiúsculas e Minúsculas
Na etapa anterior, aprendemos como usar o método endsWith(). É importante entender que o método endsWith() em Java realiza uma comparação case-sensitive (sensível a maiúsculas e minúsculas). Isso significa que "file.txt" termina com ".txt", mas não termina com ".TXT".
Vamos modificar nosso programa para ver essa sensibilidade a maiúsculas e minúsculas em ação.
Abra o arquivo
HelloJava.javano editor WebIDE.Substitua o código existente pelo seguinte:
public class HelloJava { public static void main(String[] args) { String fileName = "document.txt"; // Case-sensitive check boolean endsWithLowercaseTxt = fileName.endsWith(".txt"); System.out.println("Does '" + fileName + "' end with '.txt' (lowercase)? " + endsWithLowercaseTxt); // Case-sensitive check with uppercase suffix boolean endsWithUppercaseTxt = fileName.endsWith(".TXT"); System.out.println("Does '" + fileName + "' end with '.TXT' (uppercase)? " + endsWithUppercaseTxt); String anotherFile = "IMAGE.JPG"; // Case-sensitive check with lowercase suffix boolean endsWithLowercaseJpg = anotherFile.endsWith(".jpg"); System.out.println("Does '" + anotherFile + "' end with '.jpg' (lowercase)? " + endsWithLowercaseJpg); // Case-sensitive check with uppercase suffix boolean endsWithUppercaseJpg = anotherFile.endsWith(".JPG"); System.out.println("Does '" + anotherFile + "' end with '.JPG' (uppercase)? " + endsWithUppercaseJpg); } }Neste código atualizado, estamos testando explicitamente
endsWith()com sufixos em letras minúsculas e maiúsculas para destacar a natureza case-sensitive do método.Salve o arquivo
HelloJava.java.Compile o programa modificado no Terminal:
javac HelloJava.javaExecute o programa compilado:
java HelloJavaVocê deve ver uma saída semelhante a esta:
Does 'document.txt' end with '.txt' (lowercase)? true Does 'document.txt' end with '.TXT' (uppercase)? false Does 'IMAGE.JPG' end with '.jpg' (lowercase)? false Does 'IMAGE.JPG' end with '.JPG' (uppercase)? trueComo você pode ver, o método
endsWith()retornoufalsequando a capitalização do sufixo não correspondeu exatamente à capitalização na string.
Se você precisar realizar uma verificação case-insensitive (insensível a maiúsculas e minúsculas), normalmente converteria tanto a string quanto o sufixo para a mesma capitalização (seja minúscula ou maiúscula) antes de usar endsWith(). Não abordaremos isso nesta etapa específica, mas é uma técnica útil para ter em mente.
Entender a sensibilidade a maiúsculas e minúsculas é crucial ao trabalhar com strings em Java, pois muitos métodos de string são case-sensitive por padrão.
Combinar Verificações startsWith() e endsWith()
Além de verificar o final de uma string com endsWith(), você também pode verificar o início de uma string usando o método startsWith(). Este método funciona de forma semelhante a endsWith(), recebendo um prefixo como argumento e retornando true se a string começar com esse prefixo e false caso contrário. Assim como endsWith(), startsWith() também é case-sensitive (sensível a maiúsculas e minúsculas).
Combinar startsWith() e endsWith() permite que você execute verificações mais específicas em strings. Por exemplo, você pode querer verificar se um nome de arquivo começa com "temp_" e termina com ".log".
Vamos atualizar nosso programa para usar tanto startsWith() quanto endsWith().
Abra o arquivo
HelloJava.javano editor WebIDE.Substitua o código existente pelo seguinte:
public class HelloJava { public static void main(String[] args) { String logFileName = "temp_application_error.log"; boolean startsWithTemp = logFileName.startsWith("temp_"); boolean endsWithLog = logFileName.endsWith(".log"); System.out.println("Does '" + logFileName + "' start with 'temp_'? " + startsWithTemp); System.out.println("Does '" + logFileName + "' end with '.log'? " + endsWithLog); // Combine checks using the logical AND operator (&&) boolean isTempLogFile = startsWithTemp && endsWithLog; System.out.println("Is '" + logFileName + "' a temporary log file? " + isTempLogFile); String anotherFile = "data_report.txt"; boolean startsWithData = anotherFile.startsWith("data_"); boolean endsWithTxt = anotherFile.endsWith(".txt"); System.out.println("Does '" + anotherFile + "' start with 'data_'? " + startsWithData); System.out.println("Does '" + anotherFile + "' end with '.txt'? " + endsWithTxt); boolean isDataTxtFile = startsWithData && endsWithTxt; System.out.println("Is '" + anotherFile + "' a data text file? " + isDataTxtFile); } }Neste código:
- Introduzimos o método
startsWith()para verificar o início das strings. - Usamos o operador lógico AND (
&&) para combinar os resultados destartsWith()eendsWith(). O operador&&retornatruesomente se ambas as condições foremtrue.
- Introduzimos o método
Salve o arquivo
HelloJava.java.Compile o programa no Terminal:
javac HelloJava.javaExecute o programa compilado:
java HelloJavaVocê deve ver uma saída semelhante a esta:
Does 'temp_application_error.log' start with 'temp_'? true Does 'temp_application_error.log' end with '.log'? true Is 'temp_application_error.log' a temporary log file? true Does 'data_report.txt' start with 'data_'? true Does 'data_report.txt' end with '.txt'? true Is 'data_report.txt' a data text file? trueEsta saída demonstra como você pode usar
startsWith()eendsWith()em conjunto com operadores lógicos para realizar verificações de string mais complexas.
Você agora aprendeu como usar tanto startsWith() quanto endsWith() e combiná-los para verificar tanto o início quanto o fim de uma string. Esses métodos são ferramentas fundamentais para manipulação e validação de strings em Java.
Resumo
Neste laboratório, aprendemos como verificar se uma string termina com um sufixo específico em Java usando o método endsWith(). Exploramos seu uso básico para verificar sufixos como extensões de arquivo e observamos como ele retorna um valor booleano indicando se a string termina com o sufixo especificado.
Também investigamos a sensibilidade a maiúsculas e minúsculas do método endsWith() e aprendemos como realizar verificações case-insensitive (insensíveis a maiúsculas e minúsculas) convertendo a string e o sufixo para a mesma capitalização antes da comparação. Finalmente, combinamos os métodos startsWith() e endsWith() para verificar se uma string começa e termina com prefixos e sufixos específicos, demonstrando como esses métodos podem ser usados juntos para uma validação de string mais complexa.



