如何確定哪個字符串在另一個字符串之前按字母順序排列?C#順序字符串
例子:
is "add" before "ask"? true
is "aaaabba" before "aaac"? true
is "xeon" before "alphabet"? false
有什麼在.NET中可以做到這一點?或者有人知道一個好的方法來做到這一點?提前致謝。我正在使用C#,但另一種語言對於示例甚至僞代碼或一個想法都很好,謝謝。
如何確定哪個字符串在另一個字符串之前按字母順序排列?C#順序字符串
例子:
is "add" before "ask"? true
is "aaaabba" before "aaac"? true
is "xeon" before "alphabet"? false
有什麼在.NET中可以做到這一點?或者有人知道一個好的方法來做到這一點?提前致謝。我正在使用C#,但另一種語言對於示例甚至僞代碼或一個想法都很好,謝謝。
使用StringComparer
類 http://msdn.microsoft.com/en-us/library/system.stringcomparer.aspx
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,那麼兩個參數都是相等的。
陽離子在比較文化感知字符串!
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
如果您使用的是一些容器,那麼你可以檢查索引值前檢查,這是它的索引或不喜歡這樣的:
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.
的compareTo應retuen一個int其中當小於,等於,大於顯示當前字符串是bwfore,相同或與它進行比較 – frictionlesspulley
哪個容器/收集後的字符串你正在使用的類型。集合有IndexOf語句來檢查索引..這將有助於識別.. –