01.JAVA/Java2009. 3. 23. 11:15
반응형
<!--StartFragment-->/**
    * 문자열 내의 특정한 문자열을 모두 지정한 다른 문자열로 바꾼다.
    * 원본 String 이 null 일 경우에는 null 을 반환한다.
    * StringBuffer 를 이용하였으므로 이전의 String 을 이용한 것 보다
    * 월등히 속도가 빠르다. (약 50 ~ 60 배)
    *
    * 사용 예: <BR>
    *
    *   1. 게시판에서 HTML 태그가 안 먹히게 할려면
    *
    *      String str = "<TD>HTML Tag Free Test</TD>";
    *      str = replace(str, "&", "&amp;");
    *      str = replace(str, "<", "&lt;");
    *
    *   2. ' 가 포한된 글을 DB 에 넣을려면
    *
    *      String str2 = "I don't know.";
    *      str2 = replace(str2, "'", "''");
    *
    * @param   String src       원본 String
    * @param   String oldstr    원본 String 내의 바꾸기 전 문자열
    * @param   String newstr    바꾼 후 문자열
    * @return  String           치환이 끝난 문자열
    *
    * @date    2000/06/30
    * @author  김필호 (Kim, Pilho) [phkim@cluecom.co.kr]
    */
   public static String replace(String src, String oldstr, String newstr)
   {
       if (src == null)
           return null;

       StringBuffer dest = new StringBuffer("");
       int  len = oldstr.length();
       int  srclen = src.length();
       int  pos = 0;
       int  oldpos = 0;

       while ((pos = src.indexOf(oldstr, oldpos)) >= 0) {
           dest.append(src.substring(oldpos, pos));
           dest.append(newstr);
           oldpos = pos + len;
       }

       if (oldpos < srclen)
           dest.append(src.substring(oldpos, srclen));

       return dest.toString();
   }
Posted by 1010