/**
*
* @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;
}