string newList="";
string str="1,2,3,7,10,11,12,13,14,15";//string字符串
int min;
int max;
if (str!=null&&str.Length>0) {
string[] strArr = str.Split(',');//将string字符串转化为string数组
//将string数组转化为int数组
int[] Arr = new int[strArr.Length];
for (int i = 0; i <strArr.Length; i++)
{
Arr [i] = Convert.ToInt32(strArr[i].ToString());
}
//先将缩写时-两端的数字min-max都设为Arr[0]
min = Arr[0];
max = Arr[0];
//再遍历int数组
for (int i = 0; i < Arr.Length;)
{
//比较相邻两个数是否为连续
int j = i + 1;
if (j >= Arr.Length) j=i;//注意:因为j=i+1,所以j会出现超出数组下标范围的情况
//先比较第一个和第二个,如果连续,再比较第二个和第三个...直到出现不连续时就输出缩写1-3,再进行下面数字的比较
if (Arr[i] == (Arr[j] - 1))//如果连续,就先暂时把Arr[j]赋值给-右侧的数字
{
max = Arr[j];
i = j;
}
else {
if (i == Arr.Length - 1)
{
newList += min + "-" + max;//如果没有这个判断最后会输出newlist="1-3,7-7,10-15,"会多一个‘,’
}
else
{
newList += min + "-" + max + ",";
}
i = i + 1;//将3变为7,7与后面的数字比较
//此时将min和max都赋值为7
if (i < Arr.Length)
{
min = Arr[i];
max = Arr[i];
}
}
}
}
return newList;//newlist="1-3,7-7,10-15"
string newList=""; string str="1,2,3,7,10,11,12,13,14,15";//string字符串 int min; int max; if (str!=null&amp;&amp;str.Length&gt;0) { string[] strArr = st...