Preciso colocar quantos caracteres contem a String!!
Caso seja digitado mais que 20 caracteres… a mensagem vai para o else.
Eu vi alguma cois sobre o comando int length() que retorna nº caracteres contidos na String corrente…mas eu não sei usar esse comando…help pessoal.
while (true)
{
nome = JOptionPane.showInputDialog(null,“Nome do aluno”,“Informe”,3);
if (nome == null) System.exit(0);
nome = nome.trim();
if (nome.length() >= 1 && nome.length() <= 20) break;
else JOptionPane.showMessageDialog(null,"Deve ser um nome contendo entre 1 e 20 caracteres","Erro",0);
}
Junior pelo que eu vi o seu codigo está certo. Só fiz pequenas melhorias como declarar nome como String para poder utilizar o metodo lenght(), e para comparar se a pessoa não digitou nada tambem utilizei o metodo equals. ta ai o codigo com as modificações
String nome;
while (true) {
nome = JOptionPane.showInputDialog(null,“Nome do aluno”,“Informe”,3);
if (nome == null || [b]nome.equals("")) [/b]
System.exit(0);
nome = nome.trim();
if (nome.length() >= 1 && nome.length() <= 20)
break;
else
JOptionPane.showMessageDialog(null,"Deve ser um nome contendo entre 1 e 20 caracteres","Erro",0);
}
Pois é…
Não entendi a dúvida, o código está certo.
Porém me surgiu uma dúvida. Por convenção, este método
deveria se chamar getLength() e naum apenas lenght() , não é??
[code]while (true)
{
nome = JOptionPane.showInputDialog(null,"Nome do aluno","Informe",3);
if (nome == null) System.exit(0);//Se for vazio, sai e vai para o else
nome = nome.trim();//tira os espaços no inicio e no final.
if (nome.length() >= 1 && nome.length() <= 20) break;//length conta quantos caracteres tem no texto.
else JOptionPane.showMessageDialog(null,"O nome contém: " + nome.length() + " caracteres" +
"\nDeve ser um nome contendo entre 1 e 20 caracteres","Erro",0);
}[/code]
[quote=“AndreiTognolo”]Pois é…
Não entendi a dúvida, o código está certo.
Porém me surgiu uma dúvida. Por convenção, este método
deveria se chamar getLength() e naum apenas lenght() , não é??[/quote]
Não porque é um método calculado. Lembrando que uma String é - supostamente - um array especial de char então length() retorna o numero de char , ou seja o tamanho do array de char que a String encapsula. Length não é uma propriedade da String é um método utilitário para saber quantos chars tem.
Notar que length() retorna o numero de char e não necessáriamente o numero de caracteres. A equivalencia só existe em algumas línguas. Por isso, a partir do Java 5 existe o método:
public int codePointCount(int beginIndex, int endIndex)
Que retorna o numero de caracteres entre duas posições do array de char. Chamando com (0, length()) retorna o numero de caracteres na String toda