2017-08-31 182 views
1

快速概述:在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,但似乎不能正确格式化?),然后向用户呈现操纵的代码?

任何反馈将不胜感激,任何学习机会,链接或进一步的解释细节也将有所帮助。

在此先感谢您的回复。

+0

注意:若要更改[案例](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)。但是,由于您想要将字符转换为代码点并对它们进行数字排序,因此这是一种字典式排序 - 对于机器值字符串非常有用,但对于人类有价值的文本不适用。 –

回答

1

有很多方法都 迭代输入字符串与字符工作直接对子级有更好的性能比较,但这个例子更简洁:

用您的线路:

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));