В этой программе вы изучите различные методы проверки того, является ли строка числовой или нет в 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+
.