C# - 如何按字母顺序对文字UserValue进行排序和排列
问题描述:
快速概述:在IT领域工作,目前对软件开发有所了解,而且我的职位经理为我设置了一些“基本”(过分强调编码知识)问题,也找到解决方案。C# - 如何按字母顺序对文字UserValue进行排序和排列
设置问题:编写一个控制台应用程序,输入三个字符,然后按字母顺序写出。该计划应继续,直到不再需要。
安置经理的帮助说明:要求用户输入的3个字母组成的字符串 - 存储输入的字符串 - 将字符串转换为小写 - 创建3个字符变量和字符串中所以每个字符分割字符串在它自己的char变量中 - 获取将它们存储在int变量中的三个不同char变量的ascii值 - 当您具有ascii值时,您应该能够比较它们,然后按顺序输出它们。
我当前的代码:
static void Main(string[] args)
{
string input;
bool displayMenu = true;
while (displayMenu == true)
{
displayMenu = MainMenu();
}
}
private static bool MainMenu()
{
Console.Clear();
Console.WriteLine("Choose an Option: ");
Console.WriteLine("1) Alphabetical Organiser");
Console.WriteLine("2) Exit Application");
string result = Console.ReadLine();
if (result == "1")
{
alphaOrganiser();
return true;
}
else if (result == "2")
{
Console.Clear();
Console.WriteLine("GoodBye!");
Console.ReadLine();
return false;
}
else
{
return true;
}
}
public static void alphaOrganiser()
{
Console.Clear();
Console.WriteLine("Alphabbetical Organiser!");
Console.WriteLine("Please enter 3 alphabetical characters into the console : ");
string input = Console.ReadLine();
Console.Write("You inputed : " + input);
Console.ReadKey();
目前存在的问题:我能得到呈现userValue(输入),但控制台如何获取控制台来读取这些数据,然后进行排序(我曾尝试命令sortedList,但似乎不能正确格式化?),然后向用户呈现操纵的代码?
任何反馈将不胜感激,任何学习机会,链接或进一步的解释细节也将有所帮助。
在此先感谢您的回复。
答
有很多方法都 迭代输入字符串与字符工作直接对子级有更好的性能比较,但这个例子更简洁:
用您的线路:
string input = Console.ReadLine();
Console.Write("You inputed : " + input);
通过
string input = Console.ReadLine();
List<char> sorted = new List<char>(input.ToCharArray());
sorted.Sort();
Console.WriteLine(String.Join("", sorted));
注意:若要更改[案例](https://msdn.microsoft.com/en-us/library/s8z5yt00(v = vs.110).aspx)或对文本进行排序,您需要一个区域设置/文化。通常,您可能需要使用[CurrentCulture](https://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo.currentculture(v = vs.110).aspx)。但是,由于您想要将字符转换为代码点并对它们进行数字排序,因此这是一种字典式排序 - 对于机器值字符串非常有用,但对于人类有价值的文本不适用。 –