Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг Управление проектами
7 профессий по цене одной
07:05:47:06
дн. ч. мин. сек.
22 Сен 2023
2 мин
281

Парсинг строки URI в коллекцию пар имя-значение в Java

Одна из распространенных задач в программировании — это разбор строки URI и преобразование ее в коллекцию пар ключ-значение. Рассмотрим, как можно

Одна из распространенных задач в программировании — это разбор строки URI и преобразование ее в коллекцию пар ключ-значение. Рассмотрим, как можно решить эту задачу на языке Java.

Пример задачи

Представим, что есть следующий URI:

https://example.com/oauth/authorize?client_id=abc&response_type=code&scope=full&access_type=offline&redirect_uri=http://localhost/Callback

И требуется получить коллекцию, где каждый параметр URI будет представлен в виде пары ключ-значение. Например:

client_id       abc
response_type   code
scope           full
access_type     offline
redirect_uri    http://localhost/Callback

Решение задачи

В Java для решения этой задачи можно использовать класс java.net.URI и java.util.Map.

Для начала создадим объект URI из строки:

URI uri = new URI("https://example.com/oauth/authorize?client_id=abc&response_type=code&scope=full&access_type=offline&redirect_uri=http://localhost/Callback");

Теперь, чтобы получить параметры запроса, вызовем метод getQuery:

String query = uri.getQuery();

Эта строка содержит параметры запроса, разделенные символом «&». Теперь эти параметры можно разбить на отдельные пары ключ-значение:

String[] params = query.split("&");

После этого можно создать Map, в котором ключами будут имена параметров, а значениями — их значения:

Map<String, String> map = new HashMap<>();
for (String param : params) {
    String[] p = param.split("=");
    map.put(p[0], p[1]);
}

Таким образом, в map будет содержаться коллекция пар ключ-значение, соответствующая параметрам URI.

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

Проверь как ты усвоил материалы статьи
Пройди тест и узнай насколько ты лучше других читателей

Добавить комментарий