如何通过在C#中动态读取文本来按字母顺序打印文本流。
例如:“自动”为“aaacillmottuy”
对于小字符串我们都知道.sort()函数会起作用。但是如果我们有非常大的文本流并且没有无限的记忆呢?
我在想什么。读取字符流和字符串/流的长度,迭代查找字母“a”并从值ai = 0开始递增变量ai ++。对其他25个字母重复此操作。最后为ai打印的价值“aaa的数量然后是bbb然后cc ...”这是我想的解决方案,最快的一个就是不要消耗太多的内存..除非有人在这里有其他逻辑
string unsorted = yourStreamText;
string newString = new String(unsorted.OrderBy(x => x).ToArray());
newString将按字母顺序排序流的字符。
单程:
private static void Main()
{
var sorted = string.Empty;
while (true)
{
var readChar = Console.ReadKey().KeyChar;
sorted = String.Concat((sorted + readChar).OrderBy(c => c));
Console.WriteLine($"{Environment.NewLine} - Sorted input: {sorted}");
}
}