2011-11-25 74 views
1

如何確定哪個字符串在另一個字符串之前按字母順序排列?C#順序字符串

例子:

is "add" before "ask"? true 
is "aaaabba" before "aaac"? true 
is "xeon" before "alphabet"? false 

有什麼在.NET中可以做到這一點?或者有人知道一個好的方法來做到這一點?提前致謝。我正在使用C#,但另一種語言對於示例甚至僞代碼或一個想法都很好,謝謝。

+0

的compareTo應retuen一個int其中當小於,等於,大於顯示當前字符串是bwfore,相同或與它進行比較 – frictionlesspulley

+0

哪個容器/收集後的字符串你正在使用的類型。集合有IndexOf語句來檢查索引..這將有助於識別.. –

回答

15

你可以使用Compare靜態方法或CompareTo實例方法:

class Program 
{ 
    static void Main() 
    { 
     Console.WriteLine(string.Compare("add", "ask") < 0); 
     Console.WriteLine(string.Compare("aaaabba", "aaac") < 0); 
     Console.WriteLine(string.Compare("xeon", "alphabet") < 0); 
    } 
} 

打印:

True 
True 
False 
2

使用string.Compare method

static void Main(string[] args) 
    { 

     Console.WriteLine(
      "is 'add' before 'ask'? {0}", 
      string.Compare("add", "ask") < 0 
      ); 
     Console.WriteLine(
      "is 'aaaabba' before 'aaac'? {0}", 
      string.Compare("aaaabba", "aaac") < 0 
      ); 
     Console.WriteLine(
      "is 'xeon' before 'alphabet'? {0}", 
      string.Compare("xeon", "alphabet") < 0 
      ); 

     Console.ReadLine(); 
    } 
0

你可以使用

int result = String.Compare(stringa, stringb); 

如果結果> 0,則stringa會stringb之前,< 0 stringb stringa和0之前,當他們是相同的。

0

string.Compare是你正在尋找的函數。

如果結果大於0,則第一個參數大於第二個參數。如果它低於0,那麼它是第二個。如果函數返回0,那麼兩個參數都是相等的。

3

陽離子在比較文化感知字符串!

String s1 = "Strasse"; 
    String s2 = "Straße"; 

    var res = String.Compare(s1, s2, StringComparison.Ordinal) == 0; // returns false 

    CultureInfo ci = new CultureInfo("de-DE"); 
    eq = String.Compare(s1, s2, true, ci) == 0; // returns true 
0

如果您使用的是一些容器,那麼你可以檢查索引值前檢查,這是它的索引或不喜歡這樣的:

if(Array.IndexOf(strArray, "C") < Array.IndexOf(strArray, "C")) return true; 

正如你知道它是根據alphabet那麼你就可以有序使用String.Compare Method (String, String)

retun string.Compare(string1, string2) < 0 ? true : false 

比較使用current culture以獲得特定文化的信息,例如casing rules and the alphabetic order of individual characters。例如,文化可以指定某些字符組合被視爲單個字符,或者以特定方式比較大寫和小寫字符,或者字符的排序順序取決於前後的字符。

比較字符串時,應該調用Compare方法,其中requires that you explicitly specify the type of string comparison that the method uses。有關詳細信息,請參閱串Best Practices for Using Strings in the .NET Framework.