一个字符串类似如下格式: 【"10,aa;20;30,bb;40;50,cc,dd;60"】,可以看到该字符串由';'隔开,在每个';',中又由','隔开。 如果由';'隔开的字符串中只有数字(十的倍数),则删除该段。并且重新将数字按10的倍数依次增长。 所以我们要做的就是:【"10,aa;20;30,bb;40;50,cc,dd;60;"】-->【"10,aa;30,bb;50,cc,dd;"】--> 【"10,aa;20,bb;30,cc,dd;"】。
博主用java实现如下:
@Test
public void filter() throws Exception {
String data = "10,aa;20;30,bb;40;50,cc,dd;60";
String dataFilter[] = data.split(";");
int nullFlag=0;
StringBuilder sb = new StringBuilder();
for (int i = 0; i < dataFilter.length; i++) {
String targetData[] = dataFilter[i].split(",");
if(targetData.length<=1){
nullFlag++;
continue;
}
targetData[0]= String.valueOf(Integer.valueOf(targetData[0])-nullFlag*10);
for (int j = 0; j < targetData.length; j++) {
sb.append(targetData[j]).append((j+1<targetData.length)?",":";");
}
}
System.out.println(sb.toString());
}
问题可以解决,如果有小伙伴有更好的算法,望指点1,2.多谢!