1
resposta

[Sugestão] Usando métodos da String class para tratar os dados

Olá! Eu estava investigando a classe de String para ver se haveria algum modo de substituir todos os carácteres de uma String, e achei o método aString.replaceAll() que recebe dois parâmetros:

  1. um REGEX, que é uma espécie de representação de de estruturas que ocorrem em forma de strings;
  2. uma string para substituir o REGEX;

Isto funciona de maneira que a gente possa passar um REGEX(regular expression), tipo [a,b,c] e substitua toda ocorrência de "a", "b", e "c" em uma String por um outro caractere.

No meu caso, o que fiz foi:

public Title(TitleOmbd aTitle) { this.name = aTitle.title(); this.year = Integer.valueOf(aTitle.year().replaceAll("\\D", " ").trim()); this.durationInMinutes = Integer.valueOf(aTitle.runtime().replaceAll("\\D", " ").strip()); }

Neste caso, estou substituindo qualquer caractere que não seja um numero("\D") por " ", e depois estou passando o método .strip() em cadeia para remover todos os espaços da String.

Segue o link abaixo para saber mais sobre REGEX. https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/regex/Pattern.html#sum

Bom estudo a todos.

1 resposta

Olá Kin! Tudo bem?

É ótimo ver que você está explorando os métodos da classe String em Java para manipular dados, especialmente quando se trata de consumir APIs e lidar com entradas que podem não estar no formato esperado. O método replaceAll() é realmente poderoso quando precisamos substituir padrões específicos em uma string usando expressões regulares.

No seu exemplo, você está usando replaceAll("\\D", " ") para substituir todos os caracteres não numéricos por espaços. Isso é uma técnica comum para extrair números de uma string. Após isso, você aplica strip() para remover os espaços em branco no início e no final da string resultante, o que é uma boa prática para garantir que a conversão para Integer funcione corretamente.

Aqui está um exemplo prático de como você poderia usar isso em outro contexto:

Imagine que você está recebendo dados de um campo de texto onde os usuários podem inserir números de telefone de várias formas, como "(123) 456-7890" ou "123-456-7890". Você pode usar replaceAll("\\D", "") para remover todos os caracteres não numéricos e obter apenas os dígitos, facilitando o armazenamento ou a validação do número de telefone.

String phoneNumber = "(123) 456-7890";
String digitsOnly = phoneNumber.replaceAll("\\D", "");
System.out.println(digitsOnly); // Saída: 1234567890

Essa abordagem é muito útil quando você precisa garantir que os dados estejam em um formato consistente antes de processá-los ou armazená-los.

No mais, bons estudos!

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!