我正在开发一个Web浏览器。是否有内置方法可将"example.com"
或"www.example.com"
等部分网址字符串转换为"http://www.example.com/"
?
答案 0 :(得分:0)
我不确定这是否可以解决您的问题 - 但我可能会建议您使用内置的URL类来尝试解决此问题。请查看下面的链接,并确定它们是否有用。
https://docs.oracle.com/javase/tutorial/networking/urls/
答案 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格式。