본문 바로가기
[Developer]/Java

String의 replaceAll() 메소드 구현

by 해피빈이 2012. 11. 26.


급하게 자바의 replace 기능을 구현할 일이 있어서 제작해보았다.


기본 자바 String class에 있는 것보다는 뭔가 비 안정적이겠지만...


그래도 내가 원하는 기본 기능은 충실하게 동작하는 듯 하다.


JUnit4로 테스트 돌려봐야 확실할 듯 하다.



public class Test {

public static void main(String[] args) {

String testStr1="I am an apple.", testStr2=null;

testStr2 = myReplace(testStr1, "a", "t");

System.out.println("testStr1:"+testStr1);

System.out.println("testStr2:"+testStr2);

}


public static String myReplace(String str, String a, String b) {

String result = null, tmpStr=str;


do {

if(result!=null) tmpStr = result;

result = myReplaceFirst(tmpStr, a, b);

}while(!result.equals(tmpStr));


return result;

}


public static String myReplaceFirst(String str, String a, String b) {

String result = null, tmpStr=str;

int idx=0, len=a.length(), len2=b.length();

int diffLens=len-len2;



idx = str.indexOf(a);


if(idx < 0) return str;


result = tmpStr.substring(0, idx) + b + tmpStr.substring(idx+len2+diffLens, str.length());


return result;

}

}



언젠가는 써먹을 일 있겠지?


이런거 하나씩 만들어두면 유용할 듯 하다.ㅎㅎ

반응형

댓글