/** @param args */ public static void main(String[] args) { String text = "^^ http://flic.kr/p/8qYPcU http://twitpic.com/29399q http://twitpic.com/29399q http://bit.ly/7jXRah 제가 잘 아는 분이 최근 완공한 상계요양원( http://j.mp/9kaWZW )에서 직원을 구한다는데 혹 관심이 있으신 분들이나 누굴 추천해 주실 분들은 이 글을... http://j.mp/9xlh9z #jobko^^ RT @CinemaK: 애니콜 배터리 필요하신분. 착불이나 가까운데 계시는 분들은 만나서 드립니다. 사진의 모델명을 확인해 주세요 ^^ http://yfrog.com/j65xzrj #anbd"; List list = parser(text); for (int i = 0; i < list.size(); i++) { UrlDTO dto = (UrlDTO) list.get(i); System.out.println("Original URL : " + dto.getOrgUrl()); System.out.println("Target URL : " + dto.getTargetUrl()); System.out.println("MainImg URL : " + dto.getMainImgUrl()); System.out.println("RealImg URL : " + dto.getRealImgUrl()); System.out.println("URL Type : " + dto.getUrlType()); System.out.println(""); } }
/** * URL파싱 후 리스트에 넣어 반환한다. * * @param text * @return */ public static List parser(String text) { List parsingList = new ArrayList(); String orgUrl = null; String targetUrl = null; String[] imgUrl = null; // 원URL과 파싱후 URL이 동일 String urlType = "L"; // text 에 담긴 url들을 얻음 String[] urlList = ImgUrlHandler.getUrl(text); for (int i = 0; i < urlList.length; i++) { imgUrl = new String[] {"", ""}; try { // 단축 url인지 여부 판단 orgUrl = urlList[i]; if (orgUrl.indexOf(ImgUrlHandler.ImgUrl[ImgUrlHandler.BITLY_URL_INDEX]) > -1) { // targetUrl = ImgUrlHandler.bitlyLongUrl(orgUrl); } else if (orgUrl.indexOf(ImgUrlHandler.ImgUrl[ImgUrlHandler.JMP_URL_INDEX]) > -1) { // targetUrl = ImgUrlHandler.jmpLongUlr(orgUrl); } else { targetUrl = orgUrl; } targetUrl = orgUrl; // 이미지 url 일 경우 if (ImgUrlHandler.isImgUrl(targetUrl)) { // 원 URL과 파싱 후 URL이 동일 if (orgUrl.equals(targetUrl)) { urlType = "I"; } // 원 URL과 파싱 후 URL이 상이 else { urlType = "BI"; } imgUrl = ImgUrlHandler.getModifyImgUrl(targetUrl); if (imgUrl[0] == null || imgUrl[1] == null) urlType = "E"; } // 이미지 이외의 URL 일 경우 else { // 원 URL과 파싱 후 URL이 상이 if (!orgUrl.equals(targetUrl)) urlType = "BL"; targetUrl = ImgUrlHandler.getModifyTossiUrl(targetUrl); if (targetUrl == null) urlType = "E"; } boolean existUrl = false; for (int j = 0; j < parsingList.size(); j++) { UrlDTO urlDto = (UrlDTO) parsingList.get(j); if (urlDto.getOrgUrl().equals(orgUrl)) { existUrl = true; break; } } // 중복된 URL의 제외 if (!existUrl) { UrlDTO dto = new UrlDTO(); dto.setOrgUrl(orgUrl); dto.setTargetUrl(targetUrl); dto.setMainImgUrl(imgUrl[0]); dto.setRealImgUrl(imgUrl[1]); dto.setUrlType(urlType); parsingList.add(dto); } } catch (Exception ex) { ex.printStackTrace(); } } return parsingList; }