Pessoal boa noite.
Poderiam me ajudar por favor na melhoria deste algoritmo?
Eis o problema:
Crie um algoritmo que solicite seu nome completo e avalie se o dado informado é válido. Se o diálogo de entrada for cancelado, o aplicativo deve ser encerrado imediatamente. Se o nome não for válido, uma mensagem de erro deve ser exibida e o aplicativo deve ser encerrado. Se o nome for válido, o aplicativo deve exibir uma mensagem com o nome informado. As regras para a validação do dado informado são as seguintes:
a) deve ter de 5 a 50 caracteres
b) deve ter pelo menos um nome e um sobrenome
c) o nome deve ter ao menos 2 caracteres
d) o último sobrenome deve ter ao menos 2 caracteres
Dúvida 1: Como posso saber o tamanho do sobrenome sem ter que criar uma nova String? Eu gostaria de saber a quantidade de caracteres utilizando o método length() diretamente no código: nome.substring(nome.lastIndexOf(" ") + 1,nome.length()), ou seja, como faço para saber o length disso sem a necessidade de criar uma String e depois invocar essa String com o método length()?
Dúvida 2: se eu não digitar o sobrenome, a variável sobrenome assume o nome. Parece que o substring não está funcionando.
import javax.swing.JOptionPane;
public class C0707Exercicio01 {
public static void main (String[] args) {
String nome = "Informe seu nome:"; nome = JOptionPane.showInputDialog(null,nome); String sobrenome = nome.substring(nome.lastIndexOf(" ") + 1,nome.length());
// JOptionPane.showMessageDialog(null,sobrenome);
// JOptionPane.showMessageDialog(null,sobrenome.length());if (nome == null || nome.length() == 0 || nome.length() < 5 || nome.length() > 50){ JOptionPane.showMessageDialog(null, "Nome inválido"); }else if (sobrenome.length() < 2 || sobrenome.length() == 0) { JOptionPane.showMessageDialog(null,"O último sobrenome deve conter pelo menos 2 caracteres"); }else { JOptionPane.showMessageDialog(null, "Nomve válido: " + nome); }
}
}
Obrigado.