package com.project;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
public class TestCtenter {
public static void main(String[] args) throws Exception {
int[] ns = {1,3,5,6,8,9,10,11,12,13,14,15,20,78,79,102};
StringBuilder stringBuilder = new StringBuilder();
List <Integer> c = new ArrayList <Integer>(); // 连续的子数组
c.add(ns[0]);
for (int i = 0; i < ns.length - 1; ++i) {
//判断前后两个数连续
if (ns[i] + 1 == ns[i + 1]) {
c.add(ns[i + 1]);
} else {
stringBuilder.append(c); //记得返回数
c.clear();
c.add(ns[i + 1]);
}
}
String result = "";
String str = stringBuilder.append(c).toString();
/str = str.substring(1,str.length() -1);
System.out.println(str+"!!!!");
String[] strs = str.split("]\\[");
System.out.println();
for(String s:strs){
String[] subStrs = s.split(",");
if(subStrs.length == 1){ //判断一个数组里面的有几个元素 【1】【2,3,4】
result += "," +subStrs[0].trim();
}else if(subStrs.length == 2){
result += "," + s.replace(",","-").trim();
}else if (subStrs.length > 2){
String otherStr = subStrs[0].trim()+"-"+subStrs[subStrs.length - 1].trim();
result += ","+ otherStr;
}
}
result = result.substring(1).replace("","");
System.out.println(result);
}
}
[1][3][5, 6][8, 9, 10, 11, 12, 13, 14, 15][20][78, 79][102]!!!
[1,3,5- 6,8-15,20,78- 79,102]