2011-11-25 86 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.