2017-08-31 184 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));