Formatar uma String

2 respostas
P

Boas people tou com uma duvida que é o seguinte.
Eu quero validar uma string que apenas dê para introduzir numero sejam positivos ou negativos

Codigo

for (int i=0;i<linhas;i++) {

for (int j=0;j<colunas;j++) {

do

{

numero = JOptionPane.showInputDialog(Qual é o número?);

if (verificacao(numero)==true) {

matriz[i][j]=Double.parseDouble(numero);

} else {

numero = JOptionPane.showInputDialog(O que digitou é inválido! Introduza outro número?);

}

}while(verificacao(numero)!=true);

}

Aqui, verifica se a string tem apenas os numeros de 1 a 9

private static boolean verificacao(String numero) {

char[] c = numero.toCharArray();

if (numero=="") {

return false;

}

for (int i=0; i< c.length; i++) {

if ((c[i]!=0) && (c[i]!=1) && (c[i]!=2) && (c[i]!=3) && (c[i]!=4) && (c[i]!=5) && (c[i]!=6) && (c[i]!=7) && (c[i]!=8) && (c[i]!=9)) {

return false;

}

}

return true;

}

So que dá-me sempre este erro:
Por exeplo se introduzir um “aa” na string ele diz:

Exception in thread main java.lang.NumberFormatException: For input string: aaat java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)

at java.lang.Integer.parseInt(Integer.java:447)

at java.lang.Integer.parseInt(Integer.java:497)

at Main.menuimport(Main.java:34)

at Main.menu(Main.java:16)

at Main.main(Main.java:6)

Java Result: 1

Alguem me podes ajudar?
Agradecia

:wink:

2 Respostas

T

Você confundiu o caracter ‘0’ com o número 0. De qualquer maneira, a forma mais simples (e mais eficiente) de checar se uma string é numérica é tentar converter para um número, e se não der certo retornar false, como o código abaixo:

public static boolean verificacao (String numero) {
    try {
        Double.parseDouble (numero);
        return true;
    } catch (NumberFormatException ex) {
        return false;
    }
}
P

Brigadão tá a funcionar a 100% :wink:

Criado 14 de janeiro de 2008
Ultima resposta 14 de jan. de 2008
Respostas 2
Participantes 2