在电力电网系统中往往需要统计线路杆塔信息(列如 2#~5# 设计覆冰厚度为20 mm; 7#~10# ,8#,910~#18 设计覆冰 厚度为30 ;这样杆塔怎么样统计。我们简化抽象出这个问题。比如1到10 数中 ,找出连续相连的数用“~”连接,不相连用","。下面看看下面算法实现。
for (int i = 0; i < datas.Length; i++) { if (i == 0) { result += " " + datas[i]; } else if (i == datas.Length - 1) { if (datas[i] - datas[i - 1] == 1) { result = result + "~" + datas[i]; } else { result = result + "," + datas[i]; } } else { if ((datas[i] - datas[i - 1] == 1) && (datas[i + 1] - datas[i] == 1)) { continue; } if ((datas[i] - datas[i - 1] == 1) && (datas[i + 1] - datas[i] != 1)) { result = result + "~" + datas[i]; } if ((datas[i] - datas[i - 1] != 1)) { result = result + "," + datas[i]; } } }
注意“,” 和“~” 是一样都是字符。理解这个比较好理解算法。
参考自:http://blog.csdn.net/caoyinghui1986/article/details/2498864