Bom dia pessoal alguem poderia me ajudar a criar uma função para validar um campo Long exemplo:
Preciso recebe uma string e depois converter para Long… se na String conter texto preciso que dê uma mensagem de erro
agora se a string conter somente números preciso que converta para Long…
Comecei assim:
public Long validarLog(String log) {
Long valor = null;
if(log != null) {
valor = Long.parseLong(log);
}
else {
}
return valor;
}
Baixe o jar commons-lang da apache.
Coloque-o no classpath do teu projeto.
Chame o método (função é algo da programação estruturada) NumberUtils.isNumber e passe a String em questão como argumento, obtenha o resultado, que é um boolean em uma variável específica.
Se true, significa que é um número (possui, entre seus caracteres, os dígitos de 0 a 9 ou ponto). Se false, possui qualquer coisa além de ponto ou dígitos de 0 a 9.
Pronto!
[quote=drsmachado]Baixe o jar commons-lang da apache.
Coloque-o no classpath do teu projeto.
Chame o método (função é algo da programação estruturada) NumberUtils.isNumber e passe a String em questão como argumento, obtenha o resultado, que é um boolean em uma variável específica.
Se true, significa que é um número (possui, entre seus caracteres, os dígitos de 0 a 9 ou ponto). Se false, possui qualquer coisa além de ponto ou dígitos de 0 a 9.
Pronto![/quote]
Obrigado pela resposta… mas eu gostaria de aprender a criar meu próprio método…
A maneira mais rápida (é mais rápida que usar uma expressão regular, por exemplo!) de determinar se algo pode ser convertido para Long é tentar converter para Long. Se tomar uma exceção, então não dá para converter e ponto final. Algo como:
public boolean isNumeric (final String str) {
if (str == null) return false;
try {
Long.parseLong (str);
} catch (NumberFormatException ex) {
return false;
}
return true;
}
Pode medir e ver que é a solução mais rápida.
[quote=entanglement]A maneira mais rápida (é mais rápida que usar uma expressão regular, por exemplo!) de determinar se algo pode ser convertido para Long é tentar converter para Long. Se tomar uma exceção, então não dá para converter e ponto final. Algo como:
public boolean isNumeric (final String str) {
if (str == null) return false;
try {
Long.parseLong (str);
} catch (NumberFormatException ex) {
return false;
}
return true;
}
Pode medir e ver que é a solução mais rápida.
[/quote]
Então ai vc está retornando true ou false… eu to precisando retornar o Long convertido… ou a mensagem de erro… abraço!
Use só o parseLong então, ué… é exatamente isso que ele faz.
Use só o parseLong então, ué… é exatamente isso que ele faz.[/quote]
Então mas eu quero colocar a minha mensagem… Ex: Não foi possível converter, digite somente números!
Use só o parseLong então, ué… é exatamente isso que ele faz.[/quote]
Então mas eu quero colocar a minha mensagem… Ex: Não foi possível converter, digite somente números![/quote]
Ok, já que quer inventar a tua própria roda…
public Long converteParaLong(String str) throws Exception{
try{
return Long.parseLong(str);
}catch(Exception e){
throw new Exception("Eu quis reinventar a roda e não usar algo que está pronto, ocorre que houve problema na conversão e por isto você recebeu esta mensagem");
}
}
Use só o parseLong então, ué… é exatamente isso que ele faz.[/quote]
Então mas eu quero colocar a minha mensagem… Ex: Não foi possível converter, digite somente números![/quote]
Ok, já que quer inventar a tua própria roda…
public Long converteParaLong(String str) throws Exception{
try{
return Long.parseLong(str);
}catch(Exception e){
throw new Exception("Eu quis reinventar a roda e não usar algo que está pronto, ocorre que houve problema na conversão e por isto você recebeu esta mensagem");
}
}
[/quote]
kkkkkkkkkkkkkkkkkkkkkkk poxa valeu era isso mesmo que estava precisando… obrigado

Use só o parseLong então, ué… é exatamente isso que ele faz.[/quote]
Então mas eu quero colocar a minha mensagem… Ex: Não foi possível converter, digite somente números![/quote]
Só tome cuidado com a sua mensagem de erro: digite somente números, vai depender da sua definição de número.
O método parseLong não consegue converter uma String com valor “1.1” por exemplo.
Use só o parseLong então, ué… é exatamente isso que ele faz.[/quote]
Então mas eu quero colocar a minha mensagem… Ex: Não foi possível converter, digite somente números![/quote]
Ok, já que quer inventar a tua própria roda…
public Long converteParaLong(String str) throws Exception{
try{
return Long.parseLong(str);
}catch(Exception e){
throw new Exception("Eu quis reinventar a roda e não usar algo que está pronto, ocorre que houve problema na conversão e por isto você recebeu esta mensagem");
}
}
[/quote]
kkkkkkkkkkkkkkkkkkkkkkk poxa valeu era isso mesmo que estava precisando… obrigado
[/quote]