【问题标题】:How can i sort a string with numbers [duplicate]如何对带有数字的字符串进行排序[重复]
【发布时间】:2020-05-25 14:12:54
【问题描述】:

谁能帮帮我,好吗?

我有一个输入字符串

Console.WriteLine("Enter some numbers");
string numbers = Console.ReadLine();

假设输入为“3145”。 如何对它们进行升序排序(如果可能,使用循环)并且输出为“1345”?

我是个初学者...

【问题讨论】:

  • this 能回答你的问题吗?
  • string result = string.Concat(numbers.OrderBy(c => c));
  • 欢迎来到 Stack Overflow。阅读How to Ask 并尝试搜索。
  • @styx 因为它很可能是一个家庭作业
  • 我投票重新开放,我认为给定的答案不能回答他的问题。

标签: c#


【解决方案1】:

这是一个可能的解决方案:

Console.WriteLine("Enter some numbers");
string numbers = Console.ReadLine();
string result = string.Concat(numbers.Select(x => int.Parse(x.ToString())).OrderBy(x => x));

【讨论】:

  • 注意:你可以用string.Concat(...)代替string.Join(null, ...)
  • @canton7 我可能是错的,但我发现了许多关于 string.Join 性能更好的基准
  • 这会让我感到惊讶:它们的实现看起来几乎相同(从缓存中获取StringBuilder,然后添加一些东西)。我会做一些基准测试
  • string.Join 在 .NET Framework 和 Core 上的成本约为 string.Concat 的 120%。无论如何,与相对便宜的方法相比,这种差异并不意味着什么
  • 我还是用 concat 版本编辑的
猜你喜欢
  • 2022-10-07
  • 2021-07-23
  • 1970-01-01
  • 2011-05-23
  • 1970-01-01
  • 2017-09-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多