Java实现将一个字符串中特定两个子串之间内容的替换

package cn.shishu.enumtest;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class ChangProcess {

	public static void main(String[] args) {
		String startString="电子物证:";
		String endString="。在搜查过程中";
		String oldProcess="11卡拉所发生的了粉红色的回复了收到货发送到发送到11电子物证:计算机,书,鞋子,马甲,大马哈等的。在搜查过程中222的哈傻傻的撒谎的吉安市劳动局拉斯加了jlasj";
		String goodsList="波多野结衣,杨振,水莱丽等";
		String string=getNewProcess(startString, endString, oldProcess, goodsList);
        System.out.println(string);
		
	}
	
    public static String getNewProcess(String startString,String endString,String oldProcess,String goodsList){
    	String process="";
    	//获取已经去掉内容的字符串
    	String surplusProcess=getSurplusProcess(oldProcess, startString, endString);
    	//插入特定字符串到特定字符串后面
    	process=insertGoodsListToProcess(startString, surplusProcess,goodsList);
    	return process;
    }
    
    //在特定的字符串后面添加数据
    private static String  insertGoodsListToProcess(String startString,String surplusProcess,String goodsList) {
    	// 原字符串
    	StringBuffer s = new StringBuffer(surplusProcess); 
    	// 要插入的字符串
		String insertStart =goodsList ; 
		// 插入位置
		Pattern p = Pattern.compile(startString); 

		Matcher m = p.matcher(s.toString());
		// 插入字符串
		if (m.find()) {
			s.insert((m.start() + startString.length()), insertStart); 
		
		}
		return s.toString();
	}

    
    //将两个字符串间的内容去掉
    private static String getSurplusProcess(String oldProcess,String startString,String endString) {
    	String surplusString="";
        	//获取开始子串的索引
            int index1 = oldProcess.indexOf(startString);
            if (index1 != -1) {
            	//获取结束字符的索引
                int index2 = oldProcess.indexOf(endString, index1);
                if (index2 != -1) {
                	//将才分的字符串进行拼接
                    String str3 = oldProcess.substring(0, index1+startString.length());
                    String str4=oldProcess.substring(index2, oldProcess.length());       
                    surplusString=str3+str4;
                }else {
                    return oldProcess;
                    
                }
            }else {
                return oldProcess;
                
            }
			return surplusString;
    }
}

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值