package fuxiday0714;
/*
* 1、编写代码完成如下功能:
* public static String replace(String text, String target, String replace){
* ....
* }
* 示例:replace(“aabbccbb”, “bb”, “dd”); 结果:aaddccdd
* 注意:不能使用String及StringBuffer等类的replace等现成的替换API方法。
*
* 分析一:
* public int indexOf (String str) :返回指定子字符串第一次出现在该字符串内的索引(无则返回-1)。
* public String substring (int beginIndex) :
* 返回一个子字符串,从beginIndex开始截取字符串到字符串结尾。
* public String substring (int beginIndex, int endIndex) :
* 返回一个子字符串,从beginIndex到endIndex截取字符串。含beginIndex,不含endIndex。
*
* 1、 找到target第一次出现在text中的索引位index,将text中0-(index-1)转换为字符串
* 放入为可变字符序列sb(StringBuilder)中,并紧接着将replace存入sb;
* 2、截取text中(index+target的长度)-字符串结尾为新的text,重复1步骤直至新的text中已无此target;
*
*
*/
public class Test06_01 {
public static void main(String[] args) {
/* 测试1:
StringBuilder sb = new StringBuilder();
sb.append("123");
System.out.println(sb);
System.out.println("123456".indexOf("0"));*/
String str1 = replace1("aabbccbb", "bb", "dd");
System.out.println("将字符串"+"aabbccbb"+"中的"+"bb"+"替换为"+"dd"+"后的结果是:" + str1);
}
private static String replace1(String text, String target, String replace) {
StringBuilder sb = new StringBuilder();
if(text.indexOf(target) == -1) {
return "文本中无此目标字符串";
}
while(text.indexOf(target)!=-1) {
int index = text.indexOf(target);
sb.append(text.substring(0, index)).append(replace);
text = text.substring(index + target.length());
}
return sb.toString();
}
}