Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何通过保留空格对包含空格的字符串中的字符进行排序_C#_String_Linq_Sorting - Fatal编程技术网

C# 如何通过保留空格对包含空格的字符串中的字符进行排序

C# 如何通过保留空格对包含空格的字符串中的字符进行排序,c#,string,linq,sorting,C#,String,Linq,Sorting,输入字符串可能如下所示: “2 4 8 6”或“a b z g h” 输出字符串应如下所示: “2 4 6 8”和“a b g h z” 我正试图用C#LINQ和其他简单的方法找到答案。 作为初学者,我在这个链接中讨论了这个问题: 但是,我无法按照我希望的顺序对数组进行正确排序 编辑:请注意,字符之间的空格数为1。如果可能的话,请考虑这个测试用例“2 15 3”。 尝试分割输入字符串并排序如下: IEnumerable<string> sequence = "a b z g h".S

输入字符串可能如下所示:

“2 4 8 6”或“a b z g h”

输出字符串应如下所示:

“2 4 6 8”和“a b g h z”

我正试图用C#LINQ和其他简单的方法找到答案。 作为初学者,我在这个链接中讨论了这个问题:

但是,我无法按照我希望的顺序对数组进行正确排序


编辑:请注意,字符之间的空格数为1。如果可能的话,请考虑这个测试用例“2 15 3”。

尝试分割输入字符串并排序如下:

IEnumerable<string> sequence = "a b z g h".Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries).OrderBy(p => p);
IEnumerable sequence=“a b z g h”.Split(新字符[]{''},StringSplitOptions.RemoveEmptyEntries).OrderBy(p=>p);

在空格处拆分文本。然后对结果值进行排序,并用空格将它们连接在一起:

var result = string.Join(" ", text.Split(' ').OrderBy(v => v));
另一种可能性:

var res = "1 2 3 4 5".Split(' ')
                     .OrderBy(x=>x)
                     .Aggregate((r,x) => r +" "+ x)
使用LINQ

        var input1 = "2 4 8 6";
        var input2 = "a b z g h";
        var input3 = "2 4 8 6 a b z g h";

        var output = input3.Split(' ').OrderBy(x => x).ToList();
        foreach (var sortedChars in output)
        {
            Console.WriteLine(sortedChars);
        }
使用内置数组。排序:

        var arr = input3.Split(' ');
        Array.Sort(arr);
        foreach (var s in arr)
        {
            Console.WriteLine(s);
        }

如果输入字符串是
“123 abc 8+1 xyz 4 9-5”
那么输出字符串是什么?空格是否总是用作“分隔符”,意思是,您不能按空格拆分字符串,然后对其进行排序吗?非空格块之间的空格数是否总是1?最简单(它可以完成提供的两个示例,但在一般情况下可能失败)
stringresult=string.Join(“”),source.Split(“”).OrderBy(x=>x))我们拆分初始字符串,对子字符串进行排序,然后将它们合并回string@K.Gaka混乱的程序员:作为一个初学者是很好的,但是,请用正确的方式陈述问题:要么描述一般情况(参见我的怪异例子)或者明确地说,字符串只能包含由空格分隔的单个字母/数字。在你的问题中,“字符串可能看起来”意味着该字符串可能看起来很不一样一个漂亮的LINQ one LINQ liner,我多么喜欢它。我建议
StringSplitOptions.removemptyEntries
。这样,如果字符之间有多个空格,就不会得到空字符串。回答得好。我建议使用
text.Split(新[]{''},StringSplitOptions.RemoveEmptyEntries)以防字符之间有多个空格。
        var arr = input3.Split(' ');
        Array.Sort(arr);
        foreach (var s in arr)
        {
            Console.WriteLine(s);
        }