Під час роботи з Java, іноді потрібно перевірити, чи є рядок числом. Це може бути корисно, наприклад, при читанні вводу користувача або при обробці даних із зовнішнього джерела. У Java існує кілька способів виконання цього завдання, включаючи використання регулярних виразів та методів класу Number.
Одним із способів перевірки рядка на число є використання методів класу Number, таких як parseInt() або parseFloat(). Наприклад, ви можете використовувати наступний код:
try catch (NumberFormatException e)
Якщо вхідний рядок input може бути успішно перетворена в ціле число, то вона є числом. В іншому випадку, буде викинуто виняток NumberFormatException.
Інший спосіб перевірити, чи є рядок числом, - це використовувати регулярні вирази. Ви можете визначити шаблон для числа, а потім використовувати метод matches() класу String для перевірки рядка на відповідність цьому шаблону. Наприклад, ви можете використовувати наступний код:
String pattern = "\\d+";if (input.matches(pattern))else
У цьому прикладі шаблон "\ \ d + " визначає будь-яку послідовність цифр. Якщо вхідний рядок повністю складається з цифр, то вона вважається числом.
Перевірка чи є рядок числом в Java
| Метод | Опис |
|---|---|
| try-catch блок з методом parseInt () | Спроба перетворення рядка в число за допомогою методу parseInt (). Якщо перетворення пройшло успішно, то рядок є числом. |
| try-catch блок з методом Double.parseDouble() | Аналогічно попередньому методу, але використовується метод Double.parseDouble(). Цей метод дозволяє працювати з числами з плаваючою точкою. |
| регулярні вирази | Використання регулярних виразів для перевірки, чи відповідає рядок заданому числовому шаблону. |
Кожен з цих методів має свої плюси і мінуси, і вибір методу залежить від конкретного завдання і вимог до перевірки. Однак, важливо враховувати можливість отримання помилки під час перетворення рядка в число і обробляти її відповідним чином.
Спосіб 1: Використання методу parseInt
Для перевірки рядка на число необхідно обернути виклик методу parseInt () в блок try-catch і перехопити виняток NumberF
Метод 2: Використання методу Double.parseDouble
Застосування методу Double.parseDouble () для перевірки рядка на число може бути зручним, якщо вам необхідно також працювати з числовими значеннями даного рядка. Але пам'ятайте, що цей метод може викликати numberformatexception, якщо рядок не можна перетворити на число.
Ось приклад використання методу Double.parseDouble() для перевірки рядка на число:
public static boolean isNumeric(String str) catch (NumberFormatException nfe) return true;>
Цей метод повертає значення true, якщо перетворення рядка в число пройшло успішно, і false, якщо стався виняток NumberFormatException. Таким чином, ви можете використовувати цей метод для перевірки рядка на число в Java.
Метод 3: Використання методу try-catch
Ось приклад коду:
public static boolean isNumeric(String str) catch (NumberFormatException e) return true;>
У цьому прикладі ми використовуємо метод parseDouble () для спроби перетворити рядок у число типу double. Якщо рядок не є числом, буде викинуто numberformatexception, і ми перехоплюємо його за допомогою блоку try-catch. Якщо виняток не виник, ми повертаємо true, що означає, що рядок є числом.
System.out.println(isNumeric("123")); // trueSystem.out.println(isNumeric("abc")); // false
На виході ми отримаємо:
truefalse
Цей метод також дозволяє нам перевірити, чи є рядок цілим числом, використовуючи метод parseInt(). У цьому випадку ми будемо ловити виняток NumberFormatException.
Метод 4: Використання регулярного виразу
Для перевірки, чи є рядок числом, ми можемо використовувати наступний регулярний вираз:
Цей регулярний вираз перевіряє, чи починається рядок з опціонального знака " + "або" -", за яким слідує будь-яка кількість цифр, за якими може слідувати опціональна десяткова крапка і одна або більше цифр після неї.
Для використання регулярного виразу в Java ми можемо скористатися класом Pattern з пакету java.util.regex . Ось приклад перевірки рядка на число за допомогою регулярного виразу:
import java.util.regex.Matcher;import java.util.regex.Pattern;public class Main else >>
В даному прикладі ми створюємо регулярний вираз за допомогою методу compile класу Pattern . Потім ми створюємо Об'єкт Matcher за допомогою методу matcher класу Pattern і застосовуємо метод matches для перевірки відповідності рядка регулярному виразу.