/**
 * 把字符串中的部分字符用新的字符串替换。
 *
 * @param String
 *            原字符串
 * @param String
 *            被替换字符串
 * @param String
 *            新字符串
 * @return String 替换好的字符串
 */
public static final String replace(String line, String oldString,
String newString) {
if ((line == null) || (oldString == null) || (newString == null)) {
return null;
} int i = 0; if ((i = line.indexOf(oldString, i)) >= 0) {
char[] line2 = line.toCharArray();
char[] newString2 = newString.toCharArray();
int oLength = oldString.length();
StringBuffer buf = new StringBuffer(line2.length);
buf.append(line2, 0, i).append(newString2);
i += oLength; int j = i; while ((i = line.indexOf(oldString, i)) > 0) {
buf.append(line2, j, i - j).append(newString2);
i += oLength;
j = i;
} buf.append(line2, j, line2.length - j); return buf.toString();
} return line;
}

解决方案 »

  1.   

    这个代码要是看不懂的话就先找找简单的代码看吧没什么,好好看看api,知道这里用的每个方法是什么意思,怎么会看不懂呢
      

  2.   

    把line中的oldString替换成newString
      

  3.   

    在line字符串中从0开始依次找oldString,j记录每次查找的开始位置,i记录每次找到的位置。
    每次找到后都先buf.append(line2, j, i - j),把开始查找位置与找到位置之间的字符串保留,然后append(newString2)就是取代就字符串。