English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Основной учебник Java

Java Управление потоком

Java Массивы

Java Ориентированность на объекты (I)

Java Ориентированность на объекты (II)

Java Ориентированность на объекты (III)

Обработка исключений Java

Java List

Java Queue (очередь)

Java Map набор

Java Set набор

Java Вход/Вывод (I/O)

Java Reader/Writer

Другие темы Java

Java программа проверки строки на число

Java полный список примеров

В этой программе вы узнаете о различных методах проверки того, является ли строка числом в Java.

Пример 1: Проверка строки на то, является ли она числом

public class Numeric {
    public static void main(String[] args) {
        String string = "12345.15";
        boolean numeric = true;
        try {
            Double num = Double.parseDouble(string);
        } catch (NumberFormatException e) {
            numeric = false;
        }
        if(numeric)
            System.out.println(string + " \t это число");
        else
            System.out.println(string + " \t не число");
    }
}

При выполнении программы вывод будет следующим:

12345.15 - это число

В上面的 программе у нас есть строка string (String), которая содержит строку для проверки. У нас также есть булево значение numeric, которое хранит конечный результат, является ли это числом.

Чтобы проверить, содержит ли строка только цифры, в блоке try мы используем метод parseDouble() класса Double для преобразования строки в Double

Если выбрасывается ошибка (например, NumberFormatException), это означает, что string не является числом, и numeric устанавливается в false. В противном случае, это число.

Но если нужно проверить несколько строк, их нужно изменить на функцию. И логика основана на выбрасывании исключений, что может быть очень дорого.

Напротив, мы можем использовать функции регулярного выражения для проверки, является ли строка числом, как показано ниже.

Пример 2: Проверка строки с помощью регулярного выражения (regex) на то, является ли она числом

public class Numeric {
    public static void main(String[] args) {
        String string = "-1234.15";
        boolean numeric = true;
        numeric = string.matches("-?\\d+(\\.\\d+)?");
        if(numeric)
            System.out.println(string + " \t это число");
        else
            System.out.println(string + " \t не число");
    }
}

При выполнении программы вывод будет следующим:

-1234.15 - это число

В上面的 программе мы используем regex для проверки, является ли string числом, вместо использования блока try-catch. Это выполняется с помощью метода matches() String.

В методе matches()

  • -?\t Разрешить ноль или несколько - для отрицательных чисел в строке.

  • \\d+ Проверить, содержит ли строка хотя бы один или несколько чисел (\\d).

  • (\\.$\\d+)? Разрешить ноль или несколько заданных шаблонов (\\.$\\d+), где

    • \\.$ проверить, содержит ли строка \\.$ (точка)

    • Если да, то по крайней мере один или несколько чисел \\d+.

Java полный список примеров