admin / 11.08.2018
.
24 дек 2012 17:39 | |
Yakunin_Yura |
Как в Java проверить является ли вводимое с командной строки число целым???
|
24 дек 2012 18:54 | |
frymock |
java.lang.Integer#parseInt()
Если не целое — получишь exception. Пример здесь. |
Изменен:24 дек 2012 15:57 |
24 дек 2012 19:48 | |
Yakunin_Yura |
guroo:
java.lang.Integer#parseInt()
Если не целое — получишь exception. Пример здесь. Спасибо! Содержание 17. Java — Регулярные выраженияЯ так и думал, но сомневался. |
25 дек 2012 01:23 | |
royksopp |
а если отбросить дробную часть и сравнить с тем, что было?
|
25 дек 2012 06:15 | |
rfq |
Yakunin_Yura:
guroo:
java.lang.Integer#parseInt()
Если не целое — получишь exception. Пример здесь. Спасибо! Я так и думал, но сомневался. А перечитать доку самому сложно было? Пусть другие перечитывают и тебе докладывают? |
25 дек 2012 10:31 | |
loptop |
можно попробовать что-нибудь типа
public static boolean isDigit(String digit){ return digit.trim().matches("\\-?[0-9]+"); } Правда это не будет работать с математической записью чисел, но для большинства случаев подойдет. |
javatalks.ru
Пакет java.util.regex поддерживает обработку регулярных выражений (regular expression).
Вот, что пишут в Википедии про регулярные выражения:
Регулярные выражения используются некоторыми текстовыми редакторами и утилитами для поиска и подстановки текста. Например, при помощи регулярных выражений можно задать шаблоны, позволяющие:
найти все последовательности символов «кот» в любом контексте, как то: «кот», «котлета», «терракотовый»;
найти отдельно стоящее слово «кот» и заменить его на «кошка»;
найти слово «кот», которому предшествует слово «персидский» или «чеширский»;
убрать из текста все предложения, в которых упоминается слово кот или кошка.
Последнее предложение мне не нравится, кто-нибудь может отредактировать эту страницу?
В Java могут использоваться нестандартные приёмы использования регулярных выражений по синтаксису. Например, во многих языках выражение \\ означает, что ищется символ обратного слеша, который идёт за специальным мета-символом регулярного выражения. В Java придётся использовать для этой цели \\\\. Но таких различий немного.
Пакет содержит два класса — Pattern и Matcher, которые работают вместе. Класс Patern применяется для задания регулярного выражения. Класс Matcher сопоставляет шаблон с последовательностью символов.
Регулярное выражение состоит из обычных символов, наборов символов и групповых символов. Обычные символы используются как есть. Если в шаблоне указать символы «кот», то эти символы и будут искаться в строке.
Символы новой строки, табуляции и др. определяются при помощи стандартных управляющих последовательностей, которые начинаются с обратного слеша (\). Например, символ новой строки можно задать как \n.
Наборы символов заключаются в квадратные скобки. Например, [cat] совпадает с символами c, a, t. Если поставить символ ^ перед набором символов — [^cat], то ищутся совпадения всех символов, кроме c, a, t.
Чтобы задать диапазон символов, используется дефис. Например, диапазон от 1 до 9 можно задать как [1-9].
Символ точки является групповым символом, который совпадает с любым символом вообще.
Также можно задать, сколько раз совпадает выражение.
Конструкция Regex | Что считается совпадением |
---|---|
Любой символ | |
Ноль (0) или одно (1)повторение предшествующего | |
Ноль (0) или более повторений предшествующего | |
Одно (1) или более повторений предшествующего | |
Диапазон символов или цифр | |
Отрицание последующего (то есть, «не что-то«) | |
Любая цифра (иначе, ) | |
Любой нецифровой символ (иначе, ) | |
Любой символ-разделитель (иначе, ) | |
Любой символ, отличный от разделителей (иначе, ) | |
Любая буква или цифра (иначе, ) | |
Любой знак, отличный от буквы или цифры (иначе, ) |
Например, выражение -?\\d+ будет искать число, у которого может быть минус (а может и нет).
Выражение c.t позволит найти слова cat, cot, но не cart.
Регулярные выражения встречаются в методах класса String.
Первые два выражения подходят под составленное выражение — либо число с минусом, либо число без знака.
Со знаком плюс число не проходит проверку. Чтобы и этот вариант проходил, нужно видоизменить выражение (четвёртый вариант).
Нужно включить условие «может начинаться с + или -» с помощью вертикальной черты | (ИЛИ). Круглые скобки используются для группировки. Знак вопроса позволяет указать, что допустимо отсутствие знака. Знак плюса экранируется, так как является мета-символом.
Если вы зададите неверное выражение, то будет создано исключение PatternSyntaxException.
Статья проплачена кошками — всемирно известными производителями котят.
Если статья вам понравилась, то можете поддержать проект.
Для работы с регулярными выражениями определено два класса:
Ниже приведен пример использования этих классов. Вначале создается шаблон регулярного выражения описывающего комментарии C++.
Затем создается движок на основе этого шаблона и строки разбора.
Установка флагов шаблона регулярного выражения влияет на поведение разбора строки. Флаги указываются при создании объекта Pattern или в самом шаблоне с помощью модификаторов регулярных выражений.
Методы класса:
Некоторые методы класса:
Таким образом, чтобы найти третье вхождение шаблона в строке, надо вызвать метод три раза;
Класс также реализует интерфейс MatchResult для для получения информации о последнем найденном соответствии:
Чтобы посмотреть как работают группы, в блоке try предыдущего примера поместите код
FILED UNDER : IT