【问题标题】:compare() method should not be used for comparing two strings because it just returns the number of characters of first string over second stringcompare() 方法不应该用于比较两个字符串,因为它只返回第一个字符串的字符数超过第二个字符串
【发布时间】:2018-05-15 08:59:03
【问题描述】:

我刚刚发现 string.compare() 正在返回 0:当第一个字符串内容与第二个字符串(包括长度)完全匹配时。 +ve 值:当第一个字符串长度大于第二个时,无论第一个字符串是否存在于第二个字符串中。 -ve 值:当第一个字符串长度不超过第二个时,无论第一个字符串是否存在于第二个字符串中。

使用 compare() 方法比较两个字符串而不考虑文化是否很好。

谁能推荐我。

【问题讨论】:

  • 来自 msdn:比较两个指定 String 对象的子字符串,忽略或尊重它们的大小写并使用特定于文化的信息来影响比较,并返回一个整数,指示它们在排序顺序中的相对位置。
  • 什么都别想,看文档吧。比较返回的内容与比较字符串的长度几乎没有关系。 ”A”.CompareTo(“ZZZ”)”AAA”.CompareTo(“Z”) 返回什么?
  • 您的问题是什么? “好不好”是主观问题,在这里不属于主题。

标签: c# string compare


【解决方案1】:

compare 方法不应该用于比较两个字符串,因为它只返回第一个字符串相对于第二个字符串的字符数

再说一遍?您从哪里得到字符串比较以这种方式工作的想法?你对Compare 工作原理的看法是绝对错误的。

string.Compare(s1, s2) 将返回:

  • 0 如果s1 既不大于也不小于s2,也就是说,考虑到选择的比较标准,它们在顺序上是相等的。
  • -1 如果s1 大于s2:“Z”大于“A”,也大于“AA”。
  • 1 如果s2 大于s1

现在,当谈到字符串比较标准时,您有几个选择。查看文档以了解哪一个适用于您当前的要求。

【讨论】:

    猜你喜欢
    • 2018-04-23
    • 2021-04-29
    • 1970-01-01
    • 2020-06-21
    • 1970-01-01
    • 2016-03-29
    • 1970-01-01
    • 1970-01-01
    • 2020-06-02
    相关资源
    最近更新 更多