java解析URL中domain、端口跟协议的两种方法
java解析URL中domain、端口和协议的两种方法
@Test public void parseDomain() throws IOException { for (int i = 0; i < 10000000; i++) { String urlAddress = "http://www.roseindia.net/jsf/JSFLoginApplication.shtml"; URL url = new URL(urlAddress); assertEquals("www.roseindia.net", url.getHost()); assertEquals("/jsf/JSFLoginApplication.shtml", url.getPath()); assertEquals(-1, url.getPort()); // -1 if not set assertEquals("http", url.getProtocol()); } } @Test public void parseDomainByStringUtils() { for (int i = 0; i < 10000000; i++) { String urlAddress = "http://www.roseindia.net/jsf/JSFLoginApplication.shtml"; assertEquals("www.roseindia.net", StringUtils.split(urlAddress, ":/")[1]); assertEquals("http", StringUtils.split(urlAddress, ":/")[0]); } }
代码可读性比较:使用URL类更优雅
性能比较:URL类解析7s, StringUtils解析使用18s
why not URL class?
--end