【问题标题】:Why is "Test" greater than "test"为什么“测试”大于“测试”
【发布时间】:2021-04-07 17:54:09
【问题描述】:
using System;

public class Program
{
    public static void Main()
    {
        string t1, t2;
        t1 = "Test";
        t2 = "test";
        Console.WriteLine(t1.CompareTo(t2)); //prints 1, expected was -1
    }
} 

所以,它说CompareTo() 应该返回 1 - 如果它大于, -1 如果它小于或 0 如果它等于另一个字符串。在此示例中,我将“测试”与“测试”进行比较。据我了解,在 ASCII 中,'A'

【问题讨论】:

标签: c#


【解决方案1】:

默认的 C# 字符串比较(如,如果您没有在任何地方自己指定)是一种文化感知比较,规则取决于您计算机的文化。

如果您想使用序号比较(即您所称的 ASCII,尽管 C# 字符串是 Unicode),您可以使用它来代替:

Console.WriteLine(string.Compare(t1, t2, StringComparison.Ordinal));

另请注意,规范需要负、零或正结果,而不是具体的 -1。例如,上面的命令将返回 -32。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-11-03
  • 2010-11-21
  • 1970-01-01
  • 2011-05-07
  • 2015-07-28
  • 2018-04-04
  • 2021-04-17
相关资源
最近更新 更多