Java 将部分url字符串转换为完整url字符串
我正在开发一个网络浏览器。是否有一种内置方法可以转换部分url字符串,如Java 将部分url字符串转换为完整url字符串,java,string,url,uri,Java,String,Url,Uri,我正在开发一个网络浏览器。是否有一种内置方法可以转换部分url字符串,如“example.com”或“www.example.com”等。。。到“http://www.example.com/“?从你的问题中我了解到,这是你假装的 String url = "www.example.com" //Checks if the string does not start with http:// if (!url.startsWith("http://" && !url.endsW
“example.com”
或“www.example.com”
等。。。到“http://www.example.com/“
?从你的问题中我了解到,这是你假装的
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字符串的验证,因为在某些情况下,我猜您无法确定url格式。我不确定这是否会解决您的问题,但我可能建议使用内置url类来尝试解决此问题。请查看下面的链接,并确定它们是否有用
假设您正在尝试对web浏览器位置栏中键入的
字符串进行操作,那么您唯一可以放心地做的事情就是检查字符串是否已以“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
是否以任何方案开头,后跟冒号和双斜杠。如果没有,则将在您的urlString
前面加上“http://”。请注意,模式
允许空格出现在urlString
的最开头,然后方法代码将其修剪掉。gmail.com
既不是URL,也不是URI。这是一个域名,维基百科总是很好的。我想你没有意识到我的问题。我编辑了我的帖子。请注意,www.
不一定是一个有效的子域(例如,en.wikipedia.org
有效,但www.en.wikipedia.org
无效)。这并不能处理所有情况。。。我相信有一种内置的方法可以将所有案例转换为正确的URL。我不能忘记结尾处的“/”!谢谢,我还没有注意到这一部分。更新了我的答案。你可能想做!url.endsWith(“/”)
一个单独的检查,因为字符串可以有一个,但不能有另一个。@SaharAvr据我所知,没有内置的,所以您只需手动执行即可。这只是处理字符串的问题。