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.