링크 가 사이트 주소 인지 판단 하기

5986 단어 링크
정규 표현 식 은 링크 가 사이트 주소 인지 아 닌 지 를 판단 할 수 있 습 니 다.여기 서 저 는 말 하지 않 겠 습 니 다.여기 서 해 야 할 일 은 긴 링크 를 그의 사이트 도 메 인 이름 이 무엇 인지 분석 하 는 것 입 니 다.예 를 들 어http://www.51dota.cn/forum.php/
우리 가 가 져 와 야 할 도 메 인 이름 은:www.51dota.cn
다음은 프로그램 을 시작 하 겠 습 니 다.
우선"http:/"와"/"와 같은 접 두 사 를 제거 하 는 방법 을 쓰 겠 습 니 다.
 
/**
	 * 
	 *     :     
	 * 
	 * @author liming
	 * @time 2012-3-5   02:38:57
	 * 
	 * @param url
	 * @return
	 */
	public static String trimHttpHead(String url) {
		int i = url.indexOf("://");
		int urlLen = url.length();
		//      http://
		if (i == 4) {
			String httpStart = url.substring(0, 7);
			if ("http://".equals(httpStart.toLowerCase())) {
				url = url.substring(i + 3, urlLen);
				urlLen = urlLen - 7;
			}
		}
		//      https://
		if (i == 5) {
			String httpStart = url.substring(0, 8);
			if ("https://".equals(httpStart.toLowerCase())) {
				url = url.substring(i + 4, urlLen);
				urlLen = urlLen - 8;
			}
		}
		int j = url.lastIndexOf("/");
		//      "/"
		if (j == urlLen - 1)
			url = url.substring(0, urlLen - 1);
		return url;
	}

 
코드 는 현재 필요 하지 않 은 접 두 사 를 문자열 로 캡 처 하여 모든 사이트 주 소 를 통일 시 켜 관리 하 는 것 입 니 다.
앞 접 두 사 를 지 운 후에 우 리 는 이 사이트 에 접근 할 수 있 는 지 여 부 를 판단 합 니 다.
/**
 * 
 *     :          
 * 
 * @author liming
 * @time 2012-3-7   11:27:01
 * 
 * @param url
 * @return
 */
public static boolean isUrl(String url) {
	URL urlTemp = null;
	HttpURLConnection connt = null;
	try {
		urlTemp = new URL(Constants.HTTP + trimHttpHead(url));
		connt = (HttpURLConnection) urlTemp.openConnection();
		connt.setRequestMethod("HEAD");
		int returnCode = connt.getResponseCode();
		if (returnCode == HttpURLConnection.HTTP_OK) {
			return true;
		}
	} catch (Exception e) {
		return false;
	} finally {
		connt.disconnect();
	}
	return false;
}

 
이렇게 하면 이 url 이 실제 사이트 인지,방문 할 수 있 는 지 를 알 수 있다.
그 후에 우 리 는 마지막 으로 이 사이트 의 사이트 도 메 인 주 소 를 찾 습 니 다.
/**
 * 
 *     :      
 * @author liming
 * @time 2012-6-6   02:22:33
 *
 * @param url
 * @return
 */
public static String getWebSiteUrl(String url) {
	if (isUrl(url)) {
		String simpleUrl = trimHttpHead(url);
		if (simpleUrl.indexOf(".com") != -1)
			return simpleUrl.substring(0, simpleUrl.indexOf(".com") + 4);
		if (simpleUrl.indexOf(".net") != -1)
			return simpleUrl.substring(0, simpleUrl.indexOf(".net") + 4);
		if (simpleUrl.indexOf(".org") != -1)
			return simpleUrl.substring(0, simpleUrl.indexOf(".org") + 4);
		if (simpleUrl.indexOf(".mobi") != -1)
			return simpleUrl.substring(0, simpleUrl.indexOf(".mobi") + 5);
		if (simpleUrl.indexOf(".info") != -1)
			return simpleUrl.substring(0, simpleUrl.indexOf(".info") + 5);
		if (simpleUrl.indexOf(".biz") != -1)
			return simpleUrl.substring(0, simpleUrl.indexOf(".biz") + 4);
		if (simpleUrl.indexOf(".cc") != -1)
			return simpleUrl.substring(0, simpleUrl.indexOf(".cc") + 4);
		if (simpleUrl.indexOf(".tv") != -1)
			return simpleUrl.substring(0, simpleUrl.indexOf(".tv") + 4);
		if (simpleUrl.indexOf(".asia") != -1)
			return simpleUrl.substring(0, simpleUrl.indexOf(".asia") + 5);
		if (simpleUrl.indexOf(".me") != -1)
			return simpleUrl.substring(0, simpleUrl.indexOf(".me") + 4);
		if (simpleUrl.indexOf(".travel") != -1)
			return simpleUrl.substring(0, simpleUrl.indexOf(".travel") + 7);
		if (simpleUrl.indexOf(".tel") != -1)
			return simpleUrl.substring(0, simpleUrl.indexOf(".tel") + 4);
		if (simpleUrl.indexOf(".name") != -1)
			return simpleUrl.substring(0, simpleUrl.indexOf(".name") + 5);
		if (simpleUrl.indexOf(".co") != -1)
			return simpleUrl.substring(0, simpleUrl.indexOf(".co") + 3);
		if (simpleUrl.indexOf(".so") != -1)
			return simpleUrl.substring(0, simpleUrl.indexOf(".so") + 3);
		if (simpleUrl.indexOf(".cn") != -1)
			return simpleUrl.substring(0, simpleUrl.indexOf(".cn") + 3);
		if (simpleUrl.indexOf(".com.cn") != -1)
			return simpleUrl.substring(0, simpleUrl.indexOf(".com.cn") + 7);
		if (simpleUrl.indexOf(".net.cn") != -1)
			return simpleUrl.substring(0, simpleUrl.indexOf(".net.cn") + 7);
		if (simpleUrl.indexOf(".org.cn") != -1)
			return simpleUrl.substring(0, simpleUrl.indexOf(".org.cn") + 7);
		if (simpleUrl.indexOf(".gov.cn") != -1)
			return simpleUrl.substring(0, simpleUrl.indexOf(".gov.cn") + 7);
		if (simpleUrl.indexOf(".hk") != -1)
			return simpleUrl.substring(0, simpleUrl.indexOf(".hk") + 3);
	}
	return "";
}

 
사실 이 코드 는 복잡성 이 없습니다.문자열 에 도 메 인 이름 의 접미사 가 있 는 지 여 부 를 판단 하 는 것 입 니 다.이상 은 모든 통용 도 메 인 이름 입 니 다.다른 도 메 인 이름 을 추가 하려 면 뒤에서 계속 판단 할 수 있 습 니 다.
물론 당신 도 매우 간단 한 방법 을 사용 할 수 있 습 니 다.
new URL("http://www.yousaoqi.com/forum.php").getHost()

 
마찬가지 로 사이트 도 메 인 이름 을 얻 을 수 있 습 니 다.이런 것들 은 주로 여러분 의 생각 을 단련 시 켜 자바 를 더욱 잘 배우 고 이해 하 는 것 입 니 다.

좋은 웹페이지 즐겨찾기