我需要生成有效的URL。有一個Java的URL有效生成器?
例如:我通過url:google.com。發電機返回http://google.com/。
有些瀏覽器會這樣做。我試圖做我自己的算法,但失敗了。
又如:www.yadayadayada.com/../test返回http://www.yadayadayada.com/test/
public String generateValidURL(String url) {
int pos = 0;
try {
url = url.trim();
url = url.replaceAll(" ", "%20");
if (url.startsWith("http") && (!url.substring(4).startsWith("://"))) {
for (int i = 4; i < 7; i++) {
if ((url.charAt(i) == '/') || (url.charAt(i) == ':')) {
pos = i;
}
}
url = url.substring(pos + 1);
}
if(url.startsWith("https")){
url = url.replace("https", "http");
}
if (!url.startsWith("http")) {
url = "http://" + url;
}
if (!url.substring(7).contains("/")) {
url += "/";
}
url = url.replace(",", ".");
url = url.replace("../", "/");
url = url.substring(0, 7) + url.substring(7).replace("//", "/");
return url;
} catch (Exception e) {
System.out.println("Error generating valid URL : " + e);
return null;
}
}
請顯示您的代碼。 – 2011-05-10 14:08:20
附加到URL的額外斜槓不是問題。 – Nishant 2011-05-10 14:09:59
@Vladimir代碼已發佈。 – 2011-05-10 14:36:35