/**
* 把字符串中的部分字符用新的字符串替换。
*
* @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;
}
* 把字符串中的部分字符用新的字符串替换。
*
* @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;
}
每次找到后都先buf.append(line2, j, i - j),把开始查找位置与找到位置之间的字符串保留,然后append(newString2)就是取代就字符串。