替换一段字符串固定索引的内容(对象里的索引值不能交叉,且由低到高)

/**
     *
     * @param beginlinenum  内容替换内容
     * @param list
     *  EvFeedbackContrast   实体的属性:
     *      beginIndex 起始索引
     *      endIndex 结束索引
     *      endText 替换内容
     *      替换索引的格式:beginlinenum="当前,利用网络弱监督数据集,图像和视频分类技术在诸如图像分类、细粒度识别等问题上取得了非常好的表现。但是,弱监督学习的标签存在一些缺陷。"
     *                      beginIndex=3 endIndex=5    替换的文字:利用    内容:endText
     * @return  替换完成的beginlinenum
     */
    public static String insertLinenum(String beginlinenum,List<EvFeedbackContrast> list) {
        char[] d = beginlinenum.trim().toCharArray();
        Integer beginIndex = 0;//起始索引 (索引从0开始)
        Integer endIndex = 0;//结束索引
        Integer num = 0;//记录读到第(num/2)个索引了
        Integer index = 0;//存取索引
        String endText="";//存取修正后读到文字
        String str = "";//存取返回值
        for (char dd : d) {
            if (num % 2 == 0) {
                if (num / 2 < list.size() && list != null) {//防止数组下标越界
                    beginIndex = list.get(num / 2).getBeginIndex();//起始索引
                    endIndex = list.get(num / 2).getEndIndex();//结束索引
                    endText=list.get(num/2).getAfterFixText();//要替换的内容
                }
            }
            if (index == beginIndex ) {
                if (endIndex - beginIndex == 1) { 
/*如果方法注解的endIndex=4 且替换的内容不变只需将条件(endIndex - beginIndex == 1)改为(endIndex==beginIndex) 和下面那个 (index == endIndex-1) 改为 (index == endIndex)
如果索引从1开始,就将存取索引index的起始值改为1*/
                    num = num + 2;                  
                    str += endText;
                } else {
                    num++;
                }
            } else if (index == endIndex-1) {
                num++;
                str += endText;
            } else if(index>beginIndex &&index<endIndex){
            }else{
                str += dd;
            }
            index++;
        }
        return str;
    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值