Ir ao conteúdo
  • Cadastre-se

Exercicio java validar um nome completo.


Posts recomendados

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.

Link para o comentário
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.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...