c#字符文本的无限流并按字母顺序打印[关闭]

问题描述 投票:-2回答:2

如何通过在C#中动态读取文本来按字母顺序打印文本流。

例如:“自动”为“aaacillmottuy”

对于小字符串我们都知道.sort()函数会起作用。但是如果我们有非常大的文本流并且没有无限的记忆呢?

我在想什么。读取字符流和字符串/流的长度,迭代查找字母“a”并从值ai = 0开始递增变量ai ++。对其他25个字母重复此操作。最后为ai打印的价值“aaa的数量然后是bbb然后cc ...”这是我想的解决方案,最快的一个就是不要消耗太多的内存..除非有人在这里有其他逻辑

c# string sorting alphabetical
2个回答
1
投票
string unsorted = yourStreamText;
string newString = new String(unsorted.OrderBy(x => x).ToArray());

newString将按字母顺序排序流的字符。


0
投票

单程:

    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}");
        }
    }
© www.soinside.com 2019 - 2024. All rights reserved.