public class StringReplace {
/**
* 字符串替换
* @param srcString
* @param oldString
* @param newString
* @return
*/
public String replace(String srcString, String oldString, String newString) {
if(srcString == null) {
return null;
}
char[] lineChars = srcString.toCharArray();
char[] newStringChars = newString.toCharArray();
int oldLength = oldString.length();
StringBuffer buf = new StringBuffer(lineChars.length); //用于存储替换后的字符串
int i = 0;
int j = i;
while((i = srcString.indexOf(oldString,i)) >= 0){
buf.append(lineChars, j, i-j).append(newStringChars);
i += oldLength;
j = i;
}
buf.append(lineChars, j, lineChars.length - j); //拼接源字符串后面剩下的字符串
return buf.toString();
}
public static void main(String[] args) {
StringReplace mp = new StringReplace();
String str = "xbn_sxsghdhs我是中国人xxshjsh中国s_sx我爱中国China...;;;XH_sx()8jsdh*^_sxghdgshd";
long start = System.nanoTime();
System.out.println(mp.replace(str, "_sx", "$$$"));
System.out.println(System.nanoTime() - start);
String str1 = "xbn_sxsghdhs我是中国人xxshjsh中国s_sx我爱中国China...;;;XH_sx()8jsdh*^_sxghdgshd";
start = System.nanoTime();
System.out.println(str1.replace("_sx", "$$$"));
System.out.println(System.nanoTime() - start);
String str2 = "%gsfg^gsgh*jChinanxj&^&bbsnakkIloveChina*#KChina#@wdschiaChina";
start = System.nanoTime();
System.out.println(mp.replace(str2, "China", "中国"));
System.out.println(System.nanoTime() - start);
start = System.nanoTime();
System.out.println(str2.replace("China", "中国"));
System.out.println(System.nanoTime() - start);
}
}