Подтвердить что ты не робот

Удалить префикс URL из строки (http:/, www и т.д.).

Мне нужно удалить все виды "веб-начинаний" из моей строки

My TextView должен быть без "http://", "http://www.", "www." и другие префиксы URL.

Пожалуйста, помогите мне в этом?

4b9b3361

Ответ 1

Вы можете сделать это, используя регулярное выражение

"www.aaa".replaceFirst("^(http[s]?://www\\.|http[s]?://|www\\.)","")

Ответ 2

Используйте экземпляр URI и используйте его для разделения, но вы хотите:

URI uri = new URI(whateverYourAddressStringIs);
String path = uri.getPath(); // split whatever you need

http://developer.android.com/reference/android/net/Uri.html

Ответ 3

вы можете использовать String replace.

String myString = "http://www.abc.com";
myString.replace("http://","").replace("http:// www.","").replace("www.","");

Ответ 4

Я предполагаю, что когда вы говорите "веб-начинания", вы имеете в виду "протоколы". Подробнее о URL-адресах можно узнать в RFC или wikipedia.

Вообще говоря, вы не можете удалить "www". от URL-адреса и гарантировать, что URL-адрес укажет на тот же хост. Если все, что вы хотите сделать, это скрыть его от пользователя, это прекрасно, но я лично считаю, что это раздражает.

Следующий код разделит все протоколы, о которых знает Java, а не только http. Не все протоколы имеют //, поэтому вам нужно вручную проверить это. Класс Java URL-адрес может разбивать URL-адрес так, как вы хотите.

import java.net.URL;

public class test
{
    public static void main(String[] args)
    {
        try {
            URL url = new URL(args[0]);
            String protocol = url.getProtocol();
            String result = args[0].replaceFirst(protocol + ":", "");
            if (result.startsWith("//"))
            {
                result = result.substring(2);
            }

            System.out.println(result);
        } catch (Exception e) {
            System.out.println(e);
        }
    }
}