tenho um método que verifica se possui apenas número um campo… só que eu precisar tirar o sinal de “-” (menos) para aceitar número negativo, alguém poderia me ajudar?
public class VerificaString {
public boolean apenasNumeros(String str) {
// verifica se é vazio ou nulo
if (str == null || str.length() == 0)
return true;
for (int i = 0; i < str.length(); i++) {
// Se o digito for diferente de um digito, retorna falso.
if (!Character.isDigit(str.charAt(i)))
return false;
}
return true;
}
}
assim o valor recebido vem em forma de string, (que pode vir -1 como -2,00 (que tbm teria que trocar , por . ))
só na hora de inserir no banco que eu converto (?::varchar)::numeric
Mas não tenho ideia de como fazer… pois só queria melhorar essa verificação minha verificando se tem apenas números e se os números são negativos e trocar a vírgula por ponto
Agora que você conseguiu, já passo uma dica. É legal encapsular essas coisas, pra não ter que ficar olhando pra código que você acha feio Algo assim:public boolean isNumber(String num){
boolean isNumber;
try{
Double.parseDouble(num);
isNumber = true;
} catch (NumberFormatException e){
isNumber = false;
}
return isNumber;
}
Embora dê praticamente no mesmo, eu prefiro usar a apache commons-lang e a classe NumberUtils. Ela possui métodos que facilitam essa análise.
isDigit que diz se o valor informado contém apenas dígitos e isNumber, indicando se o valor informado é um número.