프로그램 언어/Java
java 문자열 href 링크 추가
husks
2020. 11. 26. 12:12
반응형
문자열에 http로 URL이 존재하는 경우 href 링크를 걸어주는 예제 입니다.
해당 문자열에서 url 링크를 추출하여 ArrayList에 넣고 해당 문자열에서 url을 찾아서 변경해주는 예제 입니다.
해당 소스에 중복URL이 여러개 있는경우는 오류가 발생할수 있습니다.
(그때는 replaceAll을 사용해서 변경해 주세요. 물론 ArrayList에서 중복데이터 제거를 해주셔야 합니다.)
암튼 문자열에서 고유한 url을 가지고 있다면 아래 예제로 충분히 커버 됩니다.
자세한 내용은 소스에 주석을 참고하세요.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | import java.util.ArrayList; public class UrlLink { public static void main(String[] args) { String text = "- 아이유 : https://www.melon.com/artist/timeline.htm?artistId=261143 " + "- 블랙핑크 : https://www.melon.com/artist/timeline.htm?artistId=995169"; String tmpText = text; //원본을 저장 int start = text.indexOf("http"); //http문자열 위치 int space = 0; //공백 위치 String bodyText = ""; String tailText = ""; boolean check = false; ArrayList<String> urlList = new ArrayList<String>(); if(start>=0) { //http가 존재한다면 true를 입력 check = true; } while(check) { //http가 존재한다면 실행 bodyText = text.substring(start); //http부터 문자열 자름 space = bodyText.indexOf(" "); //자른 문자열에서 공백위치 확인 if(space>0) { //공백이 존재한다면 tailText = bodyText.substring(space); //공백 뒤 문자열 저장 bodyText = bodyText.substring(0,space); //http 주소부분만 잘라서 tailText 부분에 입력 }else { tailText = ""; //공백이 없으니 뒤 문자열이 없음 } urlList.add(bodyText); //http 주소를 ArrayList에 저장 start = tailText.indexOf("http"); //뒤에 http 주소가 존재하는지 확인 if(start>=0) { check = true; text = tailText; //존재한다면 뒷부분을 text에 입력 }else { check = false; } } for(String url : urlList) { //ArrayList에 넣었던 http주소를 for문으로 실행 //tmpText 문자열에서 url부분 찾아서 머리+몸통(href추가)+꼬리 만들어서 href가 삽입된 문자열 완성 tmpText = tmpText.substring(0, tmpText.indexOf(url)) //머리 +"<a href=\""+url+"\" target=\"_blank\">"+url+"</a>" //몸통 +tmpText.substring(tmpText.indexOf(url)+url.length()); //꼬리 } System.out.println(tmpText); } } |
반응형