假设我有一个字符串“hello world”。我想以“dehllloorw”结束。由于我没有找到任何现成的解决方案,我想:我可以将字符串拆分为字符数组,对其进行排序并将其转换回字符串。
在Perl中我可以s//
但在.Net中我必须做.Split()
但是没有参数的重载...如果我做.Split(null)
它似乎按空格分割,.Split('')
将无法编译。
我该怎么做(我讨厌运行循环!)?
答案 0 :(得分:4)
Array.Sort("hello world".ToCharArray());
以下是一个快速演示控制台应用
class Program
{
static void Main(string[] args)
{
var array = "hello world".ToCharArray();
Array.Sort(array);
Console.WriteLine(new String(array));
Console.ReadLine();
}
}
答案 1 :(得分:3)
字符串中的字符可以直接使用,字符串类将它们作为枚举公开 - 将它与Linq / OrderBy
结合起来,并且你有一个单行来创建有序的输出字符串:
string myString = "hello world";
string output = new string(myString.OrderBy(x => x).ToArray()); // dehllloorw
答案 2 :(得分:2)
您可以随时执行此操作:
private static string SortStringCharacters(string value)
{
if (value == null)
return null;
return new string(value.ToList().Sort().ToArray());
}