字符串替换题目(不能使用String及StringBuffer等类的replace等现成的替换API方法)

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();
    }
}
    
 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值