1
resposta

[Projeto] Desafio resolvido

import java.util.Scanner;

public class NomeValido {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        while (true) {
            System.out.print("Digite seu nome: ");
            String nome = sc.nextLine().trim();

            if (nome.matches(".*\\d.*") || nome.length() < 3) {
                System.out.println("Nome inválido. Digite novamente. ");
                System.out.println("Seu nome não deve conter numeros, e deve possuir 3 ou mais caracteres.");
            } else {
                System.out.println("Nome \"" + nome + "\" cadastrado com sucesso!");
                break;
            }

        }
        sc.close();

    }
}
1 resposta

Oi, Aldeny! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Seu código ficou bem organizado e a validação do nome usando trim(), length() e matches() mostra um cuidado interessante ao evitar números e nomes muito curtos. O uso do while (true) com break também resolve bem a repetição até que o nome seja válido.

Uma dica interessante para o futuro é utilizar o metodo isBlank(), que ajuda a verificar se o texto esta vazio ou contem apenas espacos. Isso deixa a validacao ainda mais completa. Veja este exemplo:


Scanner sc = new Scanner(System.in);

System.out.print("Digite seu nome: ");
String nome = sc.nextLine();

if (nome.isBlank()) {
    System.out.println("Nome invalido");
} else {
    System.out.println("Nome valido: " + nome);
}

Nesse codigo, isBlank() verifica se a string esta vazia ou contem apenas espacos, ajudando a evitar entradas invalidas antes mesmo de outras validacoes.

Alura

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