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"));
}
} 展开
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"));
}
} 展开
展开全部
下面这个程序是我利用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"));
}
}
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"));
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
indexof 里面of要大写 indexOf
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
indexof(str1) 改为indexOf(); 遵循驼峰规则
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询