Вставить текст в середину строки (ссылка) - PullRequest
0 голосов
/ 27 мая 2020

Я получаю URL-адрес из сообщения в форме https://example.com/eUjKSv, однако мне нужно вставить «тег» /raw/ между .com/ и eUjKSv.
Мне было интересно, что бы быть самым простым способом сделать это, в настоящее время у меня есть очень "хакерский" способ добиться этого, new URL("https://example.com/raw" + new URL(link).getPath()), я знаю, что это довольно ужасно и работает, только если я точно знаю URL. Есть предложения, как это улучшить? Я думал о регулярном выражении, но не мог придумать подходящего, чтобы его записать.

1 Ответ

3 голосов
/ 27 мая 2020

Вы можете использовать класс URL или URI. Они оба работают для этого.

URL baseUrl = new URL("https://example.com/eUjKSv");
URL rawUrl = new URL(baseUrl, "/raw" + baseUrl.getPath());
System.out.println("baseUrl = " + baseUrl);
System.out.println("rawUrl = " + rawUrl);
URI baseUri = new URI("https://example.com/eUjKSv");
URI rawUri = baseUri.resolve("/raw" + baseUri.getPath());
System.out.println("baseUri = " + baseUri);
System.out.println("rawUri = " + rawUri);

Выход

baseUrl = https://example.com/eUjKSv
rawUrl = https://example.com/raw/eUjKSv
baseUri = https://example.com/eUjKSv
rawUri = https://example.com/raw/eUjKSv
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...