看不懂的一段代码。。。找人来品

宋玮-深圳 2007-07-24 05:44:41
/**
* 把字符串中的部分字符用新的字符串替换。
*
* @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;
}
...全文
188 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wenxiaogen 2007-07-25
  • 打赏
  • 举报
回复
ttt
itcswgq 2007-07-24
  • 打赏
  • 举报
回复
在line字符串中从0开始依次找oldString,j记录每次查找的开始位置,i记录每次找到的位置。
每次找到后都先buf.append(line2, j, i - j),把开始查找位置与找到位置之间的字符串保留,然后append(newString2)就是取代就字符串。
itcswgq 2007-07-24
  • 打赏
  • 举报
回复
把line中的oldString替换成newString
fool_leave 2007-07-24
  • 打赏
  • 举报
回复
这个代码要是看不懂的话就先找找简单的代码看吧

没什么,好好看看api,知道这里用的每个方法是什么意思,怎么会看不懂呢

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧