27

我需要从我的字符串中删除各种“网络起点”

我的 TextView 必须没有“http://”、“http:// www”。,“万维网” 和其他 URL 前缀。

请你能帮我解决这个问题吗?

4

5 回答 5

72

使用一个实例URI并使用它来拆分你想要的:

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

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

于 2013-05-21T16:45:51.060 回答
39

您可以通过使用正则表达式来做到这一点

"www.aaa".replaceFirst("^(http[s]?://www\\.|http[s]?://|www\\.)","")
于 2013-05-21T15:25:19.357 回答
11

您可以使用字符串替换。

String myString = "http://www.abc.com";
myString.replace("http://","").replace("http:// www.","").replace("www.","");
于 2013-05-21T15:25:22.550 回答
3

我假设当您说“网络开始”时,您的意思是“协议”。您可以在RFCwikipedia中了解有关 URL 的更多信息。

一般来说,您不能删除“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);
        }
    }
}
于 2013-05-21T15:57:43.553 回答
1

您可以使用 String.replace() 方法。

http://docs.oracle.com/javase/6/docs/api/java/lang/String.html

于 2013-05-21T15:24:00.840 回答