자바 url 의 루트 도 메 인 이름 bug 가 져 오기

1212 단어 자바
최근 에 url 의 루트 도 메 인 이름 을 찾 아야 합 니 다.간단 한 수요 가 있 는 것 같 지만 쓴 코드 는 bug 가 있 습 니 다.
public String getSourceDomain(String sourceLink) {
		if (sourceLink == null) {
			return null;
		}
		try {
			URI url = new URI(sourceLink);
			String host = url.getHost();
			int split = host.indexOf('.');
			return "www" + host.substring(split, host.length());
		} catch (URISyntaxException e) {
			return null;
		}
}

 
이 코드 의 문 제 는 movie.douban.com 만 처리 할 수 있다 면 douban.com 이나 test.movie.douban.com 이 라면 처리 할 수 없 는 올 바른 방법 이다.
	public String getSourceDomain() {
		if (sourceLink == null) {
			return null;
		}
		try {
			URI url = new URI(sourceLink);
			String host = url.getHost();
			String[] hostStr = host.split("\\.");
			int length = hostStr.length;
			if (hostStr.length >= 2) {
				return "www." + hostStr[length - 2] + "." + hostStr[length - 1];
			} else {
				return host;
			}
		} catch (URISyntaxException e) {
			return null;
		}
	}

 

좋은 웹페이지 즐겨찾기