用C#写出:对csdn = "1,8,6,23,11,223,56,78,9-10";进行排序
时间: 2023-08-22 19:10:02 浏览: 37
可以使用C#的内置排序方法来对这个字符串进行排序,具体实现如下:
```csharp
string csdn = "1,8,6,23,11,223,56,78,9-10";
string[] csdnArray = csdn.Split(',');
Array.Sort(csdnArray);
csdn = string.Join(",", csdnArray);
Console.WriteLine(csdn);
```
首先将字符串按逗号分割成一个字符串数组,然后使用 `Array.Sort` 方法来对数组进行排序,最后再将排序后的数组转换成字符串并输出即可。
需要注意的是,这个方法对于数字范围的处理可能不够严谨,例如上面的字符串中包含了一个范围(9-10),如果需要考虑这种情况,可能需要进行额外的处理。
相关问题
用C#写出:对字符串csdn = "1,8,6,23,223,56,78,9-15";进行排序
对于这个字符串中包含范围的情况,我们可以先将范围展开成单独的数字,再进行排序。具体实现如下:
```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>` 进行排序,再将排序后的数字转换成字符串并输出即可。
用C#写出:对字符串csdn = "1,8,6,23,223,56,78,9-15";进行排序,并且不对9-15进行展开
如果不想对9-15这样的范围进行展开,可以使用一个标记来记录这个范围,然后在排序时进行特殊处理。具体实现如下:
```csharp
string csdn = "1,8,6,23,223,56,78,9-15";
string[] csdnArray = csdn.Split(',');
List<int> csdnList = new List<int>();
bool hasRange = false;
foreach (string s in csdnArray)
{
if (s.Contains("-"))
{
if (s == "9-15")
{
hasRange = true;
csdnList.Add(-1);
}
else
{
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();
if (hasRange)
{
csdnList.Remove(-1);
csdnList.InsertRange(csdnList.FindIndex(x => x > 9), Enumerable.Range(9, 7));
}
csdn = string.Join(",", csdnList);
Console.WriteLine(csdn);
```
这里使用了一个 `bool` 类型的变量 `hasRange` 来标记是否存在需要特殊处理的范围。如果存在这样的范围(即9-15),则将一个特殊的标记(这里使用了-1)添加到 `List<int>` 中,表示这个范围的位置。在排序时,如果存在这个标记,则将其移除并将9到15这些数字插入到标记的位置上。
这样就能够实现对字符串进行排序,同时不对9-15这样的范围进行展开的效果。