【发布时间】:2017-07-17 23:09:31
【问题描述】:
输入字符串可能如下所示:
“2 4 8 6”或“a b z g h”
输出字符串应如下所示:
“2 4 6 8”和“a b g h z”
我正在尝试使用 C# LINQ 找到答案,任何其他简单的方法都可以。 作为初学者,我在这个链接中解决了这个问题:Is there a simple way that I can sort characters in a string in alphabetical order
但是,我无法按照我希望的顺序正确地对数组进行排序。
编辑:请注意字符之间的空格数为 1。如果可能,请考虑这个测试用例“2 15 3”。
【问题讨论】:
-
如果输入字符串是
"123 abc 8 + 1 xyz 4 9 -5",输出字符串是什么? -
是不是一直用空格作为“分隔符”,意思是,你不能把字符串按空格分割然后排序吗?
-
非空间块之间的空格数是否总是1?
-
最简单的(提供的两个例子都可以,但一般情况下可能会失败)
string result = string.Join(" ", source.Split(' ').OrderBy(x => x));我们拆分初始字符串,对子字符串进行排序,然后将它们组合回字符串 -
@KG aka Confused_Coder:作为一个初学者是完全可以的,但是,请以正确的方式陈述问题:要么描述一般情况(参见我的怪诞例子),要么明确说明你的字符串只能包含以空格分隔的单个字母/数字。您的问题中的“字符串可能看起来”意味着该字符串可能看起来完全不同