Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

Resolução do Desafio

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);
        int qtdMinCaracteres = 3;
        String nome;

        do {
            System.out.print("Digite o seu nome: ");
            nome = scanner.nextLine();

            if (nome.length() >= qtdMinCaracteres && possuiApenasLetras(nome)) {
                System.out.println("Nome " + nome + " cadastrado com sucesso!");
                break;
            }

            System.out.println("Nome inválido. Digite novamente!");

        } while (nome.length() < qtdMinCaracteres || !possuiApenasLetras(nome));


    }

    public static boolean possuiApenasLetras(String str) {
        return str.matches("[a-zA-Z]+");
    }
}


1 resposta

Oi, Pablo. Tudo bem com você?

Obrigado por compartilhar a sua resolução do desafio. A lógica utilizada atende ao objetivo da atividade e demonstra um cuidado extra ao criar o método possuiApenasLetras(), adicionando uma validação que vai além do que foi solicitado. O uso do do while também foi uma boa escolha, já que garante que o usuário informe um valor antes da condição ser avaliada.

Quais outras validações você imagina que poderiam ser adicionadas para deixar esse cadastro ainda mais próximo de uma aplicação real?

Parabéns pela solução e por compartilhar seu código. Continue praticando e conte com o fórum sempre que precisar.

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