Ver se String é um numero

Alguem sabe … procurei e num encontrei


System.out.println (Pattern.matches ("\d+","string")); // imprime false
System.out.println (Pattern.matches ("\d+","2"));       // imprime true

Dá também pra colocar Integer.parseInt() dentro de uma estrutura try catch.

O método public static int parseInt(String s) , recebe um string e tenta converter para um int se não lança a NumberFormatException


try{
int n = Integer.parseInt(s);
}catch(NumberFormatException e){
Sytem.out.print("Não e possivel fazer a conversão");
}

[quote=tinorberto]O método public static int parseInt(String s) , recebe um string e tenta converter para um int se não lança a NumberFormatException


try{
int n = Integer.parseInt(s);
}catch(NumberFormatException e){
Sytem.out.print("Não e possivel fazer a conversão");
}

[/quote]

É uma alternativa, mas geralmente não se é indicado usar tratamento de exceção para fazer validação.

public class CheckNumero {

    CheckNumero() {
        System.out.println("Numero? " + isNumero("1010"));
        System.out.println("Numero? " + isNumero("casa"));
        System.out.println("Numero? " + isNumero("200786"));
    }
    
    public boolean isNumero(String numero)  {

        for (int i = 0; i < numero.length(); i++) {
            if ("0123456789".indexOf(numero.charAt(i)) == -1) {
                return false;
            }
        }

        return true;

    }

    public static void main(String[] args) {
        new CheckNumero();
    }

}

A vantagem desse código acima, é que você pode colocar caracteres especiais também para simbolizar números.

[quote=Grinvon][quote=tinorberto]O método public static int parseInt(String s) , recebe um string e tenta converter para um int se não lança a NumberFormatException


try{
int n = Integer.parseInt(s);
}catch(NumberFormatException e){
Sytem.out.print("Não e possivel fazer a conversão");
}

[/quote]

É uma alternativa, mas geralmente não se é indicado usar tratamento de exceção para fazer validação.

public class CheckNumero {

    CheckNumero() {
        System.out.println("Numero? " + isNumero("1010"));
        System.out.println("Numero? " + isNumero("casa"));
        System.out.println("Numero? " + isNumero("200786"));
    }
    
    public boolean isNumero(String numero)  {

        for (int i = 0; i < numero.length(); i++) {
            if ("0123456789".indexOf(numero.charAt(i)) == -1) {
                return false;
            }
        }

        return true;

    }

    public static void main(String[] args) {
        new CheckNumero();
    }

}

A vantagem desse código acima, é que você pode colocar caracteres especiais também para simbolizar números.[/quote]

Você acha isso melhor do que validar através de Pattern’s?

[quote=rod.attack][quote=Grinvon][quote=tinorberto]O método public static int parseInt(String s) , recebe um string e tenta converter para um int se não lança a NumberFormatException


try{
int n = Integer.parseInt(s);
}catch(NumberFormatException e){
Sytem.out.print("Não e possivel fazer a conversão");
}

[/quote]

É uma alternativa, mas geralmente não se é indicado usar tratamento de exceção para fazer validação.

public class CheckNumero {

    CheckNumero() {
        System.out.println("Numero? " + isNumero("1010"));
        System.out.println("Numero? " + isNumero("casa"));
        System.out.println("Numero? " + isNumero("200786"));
    }
    
    public boolean isNumero(String numero)  {

        for (int i = 0; i < numero.length(); i++) {
            if ("0123456789".indexOf(numero.charAt(i)) == -1) {
                return false;
            }
        }

        return true;

    }

    public static void main(String[] args) {
        new CheckNumero();
    }

}

A vantagem desse código acima, é que você pode colocar caracteres especiais também para simbolizar números.[/quote]

Você acha isso melhor do que validar através de Pattern’s?[/quote]

Tente validar números negativos ou fracionados para vc ver se esse codigo funciona. :slight_smile:

Valeu todos … usei o tratamento de exceção… e funcionou bem …XD

Valeu a todos … usei o tratamento de exceção … e está funcionando