Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Поиск и инициализация переменных с помощью регулярных выражений

regexp
java
Теги: #<Tag:0x00007f7b62a44090> #<Tag:0x00007f7b5ffd3f40>

(Sergey) #1

Хочу сделать следующее:

  • с помощью регулярных выражений вычленить из текста нужные данные
  • присвоить полученные данные разным переменным

Есть следующий код:

public static void main(String[] args){
String num;
String str = “123-456-789 90490 trrrtelep678”;
Pattern p1 = Pattern.compile("[\d]+");
Matcher m1 = p1.matcher(str);

    while (m1.find( ))
    {
        num = m1.group();
        System.out.println(num);
    }
}

Как сделать, чтобы данные не выводились в консоль, а присваивались переменным. А переменные именовались по какому-то шаблону и последовательно получали найденные значения. Количество переменных должно быть “столько, сколько надо” - в зависимости от внесенного текста.

(Предполагаю, что сначала это будет String, которые надо будет преобразовать в int. А уже с численными произвести нужные операции - сравнить, вывести в порядке возрастания и прочее - все, что потребуется. Вопрос именно в том, как присвоить данные переменным. Как выполнить все эти операции я представляю, а вот как создавать переменные - не нашел.)


(Михаил Братухин) #2

А у этой задачи есть осмысленное содержание? Или это просто задачка для разминки мозга?
Про создание динамических переменных:

Если вкратце, то нет. Так сделать нельзя. Можно использовать мапу для этой цели.


(Sergey) #3

Спасибо за ответ.
Просто учу язык. Читаю уроки, пытаюсь их осмыслить, представить применение на деле.


(Vatslau) #4

Добавляй стринги в массив в своем цикле, потом можно дальше использовать, сортировать итд.
Тоже самое и переменные.
Создать, засунуть а лист и присваивать значения в цикле например.


(Sergey) #5

Спасибо за внимание.

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


(Дмитрий Мирошник) #6

Посмотри списки или мапы как вариант. В отличие от массива, размер которого в большинстве ЯП статичен (то есть, если ты сделал массив на 10 элементов - чтобы засунуть 11-й, надо переинициализировать массив), размер списка динамический (то есть myList.add добавит элемент в конец списка вне зависимости от количества уже существующих в нём элементов).