截取字符串

原创
2016/07/05 14:24
阅读数 127

一个字符串类似如下格式: 【"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.多谢!

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
0 评论
0 收藏
0
分享
返回顶部
顶部