从 java 中的 url 中删除端口号
Remove port number from a url in java
我想在 java 中编写一个函数,如果它是默认端口,它会删除该端口。
所以如果给出
String url80 = "http://www.somewhere.com:80/someplace";
会return
String urlNo80 = "http://www.somewhere.com/someplace";
如果给出
String url443 = "https://www.somewhere.com:443/someplace";
会return
String urlNo443 = "https://www.somewhere.com/someplace";
有没有比
更好的方法
public String removePortIfDefault(String inUrl) {
String returnUrl = inUrl;
if (inUrl.contains("http://") && inUrl.contains(":80")) {
returnUrl = inUrl.replaceAll(":80", "");
}
if (inUrl.contains("https://") && inUrl.contains(":443")) {
returnUrl = inUrl.replaceAll(":443", "");
}
return returnUrl;
}
您可以将 replaceFirst(或 replaceAll)与正则表达式一起使用
String urlNo80 = url80.replaceFirst(":\d+", "");
不要使用字符串操作来处理 URL。 Java 有 类 。
String url80 = "http://www.somewhere.com:80/someplace";
// Using java.net.URI
URI uri = URI.create(url80);
uri = new URI(uri.getScheme(), uri.getHost(), uri.getPath(), uri.getFragment());
String urlNo80 = uri.toString(); // http://www.somewhere.com/someplace
// Using java.net.URL
URL url = new URL(url80);
url = new URL(url.getProtocol(), url.getHost(), url.getFile());
String urlNo80 = url.toString(); // http://www.somewhere.com/someplace
我想在 java 中编写一个函数,如果它是默认端口,它会删除该端口。
所以如果给出
String url80 = "http://www.somewhere.com:80/someplace";
会return
String urlNo80 = "http://www.somewhere.com/someplace";
如果给出
String url443 = "https://www.somewhere.com:443/someplace";
会return
String urlNo443 = "https://www.somewhere.com/someplace";
有没有比
更好的方法public String removePortIfDefault(String inUrl) {
String returnUrl = inUrl;
if (inUrl.contains("http://") && inUrl.contains(":80")) {
returnUrl = inUrl.replaceAll(":80", "");
}
if (inUrl.contains("https://") && inUrl.contains(":443")) {
returnUrl = inUrl.replaceAll(":443", "");
}
return returnUrl;
}
您可以将 replaceFirst(或 replaceAll)与正则表达式一起使用
String urlNo80 = url80.replaceFirst(":\d+", "");
不要使用字符串操作来处理 URL。 Java 有 类 。
String url80 = "http://www.somewhere.com:80/someplace";
// Using java.net.URI
URI uri = URI.create(url80);
uri = new URI(uri.getScheme(), uri.getHost(), uri.getPath(), uri.getFragment());
String urlNo80 = uri.toString(); // http://www.somewhere.com/someplace
// Using java.net.URL
URL url = new URL(url80);
url = new URL(url.getProtocol(), url.getHost(), url.getFile());
String urlNo80 = url.toString(); // http://www.somewhere.com/someplace