簡體   English   中英

C#訂單字符串

[英]C# order string

如果按字母順序排序,如何確定哪個字符串在另一個字符串之前

例子:

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

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

您可以使用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

比較文化意識字符串的陽離子!

  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

使用string.Compare方法

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

你可以使用

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

如果結果> 0,那么stringa將在stringb之前,<0 stringb在stringa之前,0是在它們相同時。

string.Compare是您正在尋找的功能。

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

如果您正在使用某個容器,那么您可以檢查索引值以檢查它是否為索引之前或不是這樣:

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

如您所知,它是按alphabet那么您可以使用String.Compare方法(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 有關更多信息,請參閱.NET Framework中使用字符串的最佳實踐。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM