java 将出现在第一个参数str中的所有str1用str2代替,然后返回替换后的新的字符串 下面的编程错在哪里?

classReplace{staticStringreplace(Stringstr,Stringstr1,Stringstr2){inta=str.indexof(st... class Replace{
static String replace(String str,String str1,String str2){
int a = str.indexof(str1);
int b = str1.length();
StringBuffer buf = new StringBuffer(str);
buf.replace(a,a+b,str2);
return buf.toString();
}
public static void main(String args[]){
System.out.println(replace("abcdefg","cde","def"));
}
}
展开
 我来答
小寒爱旅游
2011-04-22 · TA获得超过1054个赞
知道小有建树答主
回答量:327
采纳率:100%
帮助的人:159万
展开全部
下面这个程序是我利用Java API写的一个替换程序(这个题目貌似是个面试题)。你的程序是有问题的,经过我的测试,改正如下:
public class Replace {
/*
* str 待处理的字符串
* sc(search string) 待搜索的子字符串
* rp(replacement) 待替换的子字符串
*/
public static String replace(String str, String sc, String rp) {

String destStr = null; //保存处理后的字符串

//先验证参数
if(str==null || sc==null || rp==null) {
System.out.println("参数非法!");
return destStr; //返回null
}

//如果待处理字符串为空字符串(注意不是null)或者sc为空字符串,则直接返回未处理的str
if(str.length()==0 || sc.length()==0) {
destStr = str;
return destStr;
}

//下面是正常情况下的处理
int firstIndex = str.indexOf(sc);
if(firstIndex==-1) { //str中没有出现子字符串sc
destStr = str;
}
else { //str中出现了子字符串
destStr = str.replaceAll(sc, rp);
}

return destStr;

}

public static void main(String args[]) {
System.out.println(replace("abcxyHxyH", "xy", "ok"));
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kmz1111
2011-04-21 · TA获得超过3145个赞
知道小有建树答主
回答量:859
采纳率:0%
帮助的人:326万
展开全部
indexof 里面of要大写 indexOf
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
makyan_yang
2011-04-22
知道答主
回答量:26
采纳率:0%
帮助的人:10.3万
展开全部
indexof(str1) 改为indexOf(); 遵循驼峰规则
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式