Java 从字符串(http:/、www等)中删除URL前缀

Java 从字符串(http:/、www等)中删除URL前缀,java,android,string,url,textview,Java,Android,String,Url,Textview,我需要从我的字符串中删除所有类型的“web开始” 我的文本视图必须没有“http://”、“http://www.”、“www.”和其他URL前缀 你能帮我解释一下吗?你可以使用String.replace()方法 您可以通过使用正则表达式来实现这一点 "www.aaa".replaceFirst("^(http[s]?://www\\.|http[s]?://|www\\.)","") 可以使用字符串替换 String myString = "http://www.abc.com"; myS

我需要从我的字符串中删除所有类型的“web开始”

我的文本视图必须没有“http://”、“http://www.”、“www.”和其他URL前缀

你能帮我解释一下吗?

你可以使用String.replace()方法


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

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

可以使用字符串替换

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

我想当你说“网络开始”时,你指的是“协议”。您可以在或中了解有关URL的更多信息

一般来说,您不能从URL中删除“www”,并保证URL将指向同一主机。如果你只想对用户隐藏它,那没关系,但我个人觉得这很烦人

下面的代码将剥离Java所知道的所有协议,而不仅仅是http。并非所有协议都有//,因此必须手动检查。用户可以根据需要精确地分解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);
        }
    }
}

使用
URI
的一个实例,并使用它进行任意拆分:

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

我不知道有没有android,但是有没有类似字符串替换函数的功能?然后你可以简单地用一个空字符串替换这些字符串,就是这样…你使用“web Beginings”告诉我,在开始这个项目之前,你可能需要学习一些URI方案的基础知识。与接受的答案相同,
“www.”
可能会出现在URL的其他地方,您应该只从一开始就删除它。这应该是可接受的答案。代码似乎正在使用
java.net.URI
,但您链接到
android.net.URI
,没有任何注释。这有点奇怪。正确的方法是:Uri-Uri=Uri.parse(“);似乎不起作用。当地址中包含
http://
https://
时,Uri和Uri
getPath()
都返回空字符串。如果地址以
www.
getPath()开头
也包括它。因此,这不是正确的答案。警告:
getPath()
省略了URI的查询和片段部分。正则表达式析取的顺序在这里很重要-它应该是
replaceFirst(“^(http://www\\.| http://| www\\),“”)
http://www.
case@Josh你说得对。我已经修正了我的答案。谢谢。@kingori,如果我们不确定url是否以http或https开头,该怎么办。由于问题是其他url前缀,因此需要将其更新为包含https。
“www.aaa”。replaceFirst(“^(https://www\\.|http://www\\.| http://| https://| www\\),”;
@ishanthilinasomari很好。我在http中添加了(?>s)以处理https案例。