Ir ao conteúdo
  • Cadastre-se
Elmo Laurenzoni Neto

Exercicio java validar um nome completo.

Recommended Posts

Senhores(ras)

Estou começando a programar em java e com isso comprei o livro do professor Rui Rossi dos Santos, pois bem, estou tendo dificuldades para resolver um exercício, segue o enunciado do mesmo e o codigo que eu fiz:

Enunciado - Solicitar o nome completo e valida-lo. Se cancelar o aplicativo deve ser encerrado. Se o nome não for valido, uma mensagem de erro deve ser exibida e o aplicativo deve ser encerrado. Se o nome for válido, o aplicativo deve exibir um mensagem com o nome informado. As regra para validação do nome informado são:

  • Deve ter de 5 a 50 caracteres
  • deve ter pelo menos um nome e um sobrenome
  • o nome deve ter ao menos 2 caracteres
  • o ultimo sobrenome deve ter ao menos 2 caracteres

 

Codigo:

import javax.swing.JOptionPane;
public class Exercicio0701
{
 public static void main(String[] args)
 {
    String st = "Informe seu nome:";
    st = JOptionPane.showInputDialog(null,st);
    
    if (st.length() < 5 && st.length() > 50)
    {
        st = "Nome invalido";
        JOptionPane.showMessageDialog(null,st,"Erro",0);
        System.exit(0);
    }
    
    
    if(st.substring(0,st.indexOf(" "))     == null && st.substring(st.lastIndexOf(" ") + 1) == null)
    {
        st = "O nome deve contre o seu nome e sobrenome";
        JOptionPane.showMessageDialog(null,st,"Erro",0);
        System.exit(0);
    }
    
    
    
    if(st.substring(0,st.indexOf(" ")).length() < 2 && st.substring(st.lastIndexOf(" ") + 1).length() < 2)
    {
        st = "O nome e o sobrenome deve contrer pelo menos 2 caracteres";
        JOptionPane.showMessageDialog(null,st,"Erro",0);
        System.exit(0);
    }
    
    st = "Nome valido: " + st;
    JOptionPane.showMessageDialog(null,st,"mensagem",1);
    System.exit(0);
 }
}

 

Eu coloco o nome porém nem todos os if são executados, somente o ultimo.

Espero não ter feito nada de errado, e meu primeiro post.

 

Agradeço a todos.

Compartilhar este post


Link para o post
Compartilhar em outros sites
import javax.swing.JOptionPane;
public class Exercicio0701
{
 public static void main(String[] args)
 {
    String st = "Informe seu nome:";
    st = JOptionPane.showInputDialog(null,st);
    
    if (st.length() < 5 || st.length() > 50)
    {
        st = "Nome invalido";
        JOptionPane.showMessageDialog(null,st,"Erro",0);
        System.exit(0);
    }
    
    
    if(st.indexOf(" ") == -1)
    {
        st = "O nome deve contre o seu nome e sobrenome";
        JOptionPane.showMessageDialog(null,st,"Erro",0);
        System.exit(0);
    }
    
    
    
    if(st.substring(0,st.indexOf(" ")).length() < 2 || st.substring(st.lastIndexOf(" ") + 1).length() < 2)
    {
        st = "O nome e o sobrenome deve contrer pelo menos 2 caracteres";
        JOptionPane.showMessageDialog(null,st,"Erro",0);
        System.exit(0);
    }
    
    st = "Nome valido: " + st;
    JOptionPane.showMessageDialog(null,st,"mensagem",1);
    System.exit(0);
 }
}

Tente isso

 

Modifiquei o if que verifica se o nome é valido verificando se o nome tem menos de 5 caracteres "ou" mais de 50 caracteres.

Verifiquei que a função  st.indexOf(" ") retorna "-1" quando não encontra e não "null", modifiquei para considerar que se encontrar um " " o nome possui sobrenome.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×