Как проверить является ли строка числом в Java?

Пользователь

от alisa.bahringer , в категории: Java , 2 года назад

Как проверить является ли строка числом в Java?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от caterina , 2 года назад

@alisa.bahringer Как вариант использовать parseDouble() и проверять на Exception в Java чтобы проверить является ли строка числом:


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
public class Main {
    public static boolean isNumeric(String str) {
        try {
            Double.parseDouble(str);
            return true;
        } catch(NumberFormatException e){
            return false;
        }
    }

    public static void main(String[] args) {
        // Вывод: true
        System.out.println(isNumeric("22"));
        // Вывод: false
        System.out.println(isNumeric("test"));
    }
}


Пользователь

от steve , год назад

@alisa.bahringer 

В Java можно использовать методы parseInt() или parseDouble() класса Integer или Double, соответственно, чтобы проверить, является ли строка числом.


Пример использования метода parseInt() для проверки, является ли строка целым числом:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
public class Main {
    public static void main(String[] args) {
        String str = "12345";
        boolean isNumeric = true;

        try {
            int num = Integer.parseInt(str);
        } catch (NumberFormatException e) {
            isNumeric = false;
        }

        if (isNumeric) {
            System.out.println("Строка является числом");
        } else {
            System.out.println("Строка не является числом");
        }
    }
}


Аналогично можно использовать метод parseDouble() для проверки является ли строка числом с плавающей точкой:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
public class Main {
    public static void main(String[] args) {
        String str = "3.14";
        boolean isNumeric = true;

        try {
            double num = Double.parseDouble(str);
        } catch (NumberFormatException e) {
            isNumeric = false;
        }

        if (isNumeric) {
            System.out.println("Строка является числом");
        } else {
            System.out.println("Строка не является числом");
        }
    }
}


В обоих случаях, если строка может быть успешно преобразована в число, то она считается числом. Если же при преобразовании возникает исключение NumberFormatException, то строка считается не числом.