用C#写出:对字符串csdn = "1,8,6,23,223,56,78,9-15";进行排序
时间: 2023-08-24 13:03:52 浏览: 108
对于这个字符串中包含范围的情况,我们可以先将范围展开成单独的数字,再进行排序。具体实现如下:
```csharp
string csdn = "1,8,6,23,223,56,78,9-15";
string[] csdnArray = csdn.Split(',');
List<int> csdnList = new List<int>();
foreach (string s in csdnArray)
{
if (s.Contains("-"))
{
string[] range = s.Split('-');
int start = int.Parse(range[0]);
int end = int.Parse(range[1]);
for (int i = start; i <= end; i++)
{
csdnList.Add(i);
}
}
else
{
csdnList.Add(int.Parse(s));
}
}
csdnList.Sort();
csdn = string.Join(",", csdnList);
Console.WriteLine(csdn);
```
首先还是将字符串按逗号分割成一个字符串数组,然后遍历数组中的每个元素。如果元素包含连字符(即范围),则将范围展开成单独的数字并添加到一个 `List<int>` 中,否则直接将字符串转换成数字并添加到 `List<int>` 中。
最后对 `List<int>` 进行排序,再将排序后的数字转换成字符串并输出即可。
阅读全文