public class InsertDetail {
public void insertInvoiceDetail(StringBuffer sb, String Label, String InsertValue) {
// 查找目标元素的起始位置
int index = 0;
while (true) {
// 起始位置的值小于或者最后一个相同标签的索引值时,将指定的数据InsertValue插入到该标签的当前位置
if (index < sb.lastIndexOf(Label) || index == sb.lastIndexOf(Label)) {
sb.insert(sb.indexOf(Label, index), InsertValue);
// 查找目标元素的起始位置从前一个相同元素的当前位置算起
index = 1 + sb.indexOf(Label, index);
continue;
} else {
break;
}
}
}
// 此方法是为了专门插入统编代码的,在第一个统编代码的位置不插入任何东西
public void insertCode(StringBuffer sb, String Label, String InsertValue) {
// 查找目标元素的起始位置
int index = 0;
while (true) {
// 起始位置的值小于或者最后一个相同标签的索引值时,将指定的数据InsertValue插入到该标签的当前位置
if (index < sb.lastIndexOf(Label) || index == sb.lastIndexOf(Label)) {
// 当找到第一个统编代码时,插入空
if (index == 0) {
sb.insert(sb.indexOf(Label, index), "");
// 查找元素的起始位置从从前一个相同元素的当前位置算起
index = 1 + sb.indexOf(Label, index);
continue;
} else {
sb.insert(sb.indexOf(Label, index), InsertValue);
// 查找目标元素的起始位置从前一个相同元素的当前位置算起
index = 1 + sb.indexOf(Label, index);
continue;
}
} else {
break;
}
}
}
}