Программа Java для проверки, является ли строка числовой

В этой программе вы изучите различные методы проверки того, является ли строка числовой или нет в 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 + " is a number"); else System.out.println(string + " is not a number"); ) )

Вывод

 12345.15 - это число

В приведенной выше программе у нас есть Stringименованная строка, содержащая проверяемую строку. У нас также есть логическое значение numeric, которое сохраняет, является ли окончательный результат числовым или нет.

Для того, чтобы проверить , если строка содержит только цифры, в блоке попробовать, мы используем Double«s parseDouble()метод , чтобы преобразовать строку в Double.

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

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

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

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

 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 + " is a number"); else System.out.println(string + " is not a number"); ) )

Вывод

 -1234.15 - это число

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

В matches()методе

  • -?допускает ноль или более -отрицательных чисел в строке.
  • \d+проверяет, что в строке должно быть хотя бы 1 или более чисел ( \d).
  • (\.\d+)?допускает ноль или более заданного шаблона, (\.\d+)в котором
    • \.проверяет, содержит ли строка .(десятичные точки) или нет
    • Если да, за ним должно быть указано хотя бы одно или несколько чисел \d+.

Интересные статьи...