将部分url字符串转换为完整的url字符串

时间:2015-09-04 16:54:22

标签: java string url uri

我正在开发一个Web浏览器。是否有内置方法可将"example.com""www.example.com"等部分网址字符串转换为"http://www.example.com/"

3 个答案:

答案 0 :(得分:0)

我不确定这是否可以解决您的问题 - 但我可能会建议您使用内置的URL类来尝试解决此问题。请查看下面的链接,并确定它们是否有用。

https://docs.oracle.com/javase/tutorial/networking/urls/

Building an absolute URL from a relative URL in Java

http://docs.oracle.com/javase/7/docs/api/java/net/URL.html

答案 1 :(得分:0)

假设您尝试在键入Web浏览器位置栏的String上操作,那么您唯一可以自信地做的就是检查该字符串是否已经以" http:/开头/"或" https://"或其他一些方案(例如" ftp://"),如果没有,则前缀" http://"从一开始。

正如评论中所提到的,假设子域名应设置为" www"是错误的。因为并非所有Web服务器都配置了此子域。 (如果网站所有者更喜欢,将Web服务器配置为将请求重定向到" www"子域名,这很容易。)

所以我说你需要的代码就是这样:

// Create a static final class field.
static final Pattern STARTS_WITH_SCHEME = Pattern.compile("^ *[a-z]+://");

// Then within your method code make use of the Pattern.
if (!STARTS_WITH_SCHEME.matcher(urlString).find()) {
    urlString = "http://" + urlString.trim();
}

这将检查您的urlString是否以任何方案开头,后跟冒号和双斜杠。如果没有,那么" http://"将作为urlString的前缀。请注意,Pattern允许空格出现在urlString的最开头,然后方法代码将它们修剪掉。

答案 2 :(得分:-1)

从我对你问题的理解,这就是你假装的。

String url = "www.example.com"

//Checks if the string does not start with http://
if (!url.startsWith("http://" && !url.endsWith("/") {
    //Appends the http in the begginning of the String
    url.insert(0, "http://");
}
//Checks if the string does not end with /
if (!url.endsWith("/") {
    //Appends the slash in the end of the url
    url.append("/");
}

请注意,我添加了url String的验证,因为在某些情况下我猜你不确定url格式。