【问题标题】:In java, when to use StringUtils.containsIgnoreCase vs. equalsIgnoreCase? [closed]在 java 中,何时使用 StringUtils.containsIgnoreCase 与 equalsIgnoreCase? [关闭]
【发布时间】:2012-08-13 06:35:39
【问题描述】:

我正在使用 java 进行一些编码,我很好奇何时使用 StringUtils.containsIgnoreCase 与 equalsIgnoreCase?什么时候使用一个比另一个更合适?实际上最大的区别是什么?谢谢大家...任何帮助将不胜感激。 :)

【问题讨论】:

  • 你知道包含是什么意思吗?你知道等于是什么意思吗?那么您应该能够自己回答这个问题,而无需任何其他方法名称。
  • 这个问题与问“什么时候使用>= 比使用> 更合适?实际上有什么大的区别?”基本相同。

标签: java equals contains


【解决方案1】:

如果您阅读specs,您会看到 StringUtils.containsIgnoreCase() 检查一个字符串是否包含另一个字符串,而StringUtils.equalsIgnoreCase() 检查两个字符串是否相等。

【讨论】:

  • 如果两个字符串相等,使用 StringUtils.containsIgnoreCase 仍将返回 true。但是,它的效率会低很多,因为它将使用字符串匹配算法,而不是对每个字符进行简单的比较。
  • 鉴于方法的名称不言而喻,您甚至几乎不需要检查它们的规格:)
【解决方案2】:

如果你有以下字符串:

String a = "ABCdefGHIjkl";
String b = "ABCDEFGHIJKL";
String c = "ABCd";

那么a 包含c,但不等于ca 包含 b 并且 等于 b。 (这里我说“equals”,我的意思是“equalsIgnoreCase”;contains 也一样。)

您可以使用其中一个,具体取决于您是否希望接受部分匹配。

【讨论】:

    【解决方案3】:
    StringUtils.containsIgnoreCase
    

    来自 Apache Commons。 它检查字符串是否包含搜索字符串。

     StringUtils.contains(null, *) = false
     StringUtils.contains(*, null) = false
     StringUtils.contains("", "") = true
     StringUtils.contains("abc", "") = true
     StringUtils.contains("abc", "a") = true
     StringUtils.contains("abc", "z") = false
     StringUtils.contains("abc", "A") = true
     StringUtils.contains("abc", "Z") = false
    

    两种方法的 API 文档:equalsIgnoreCasecontainsIgnoreCase

    【讨论】:

      【解决方案4】:

      StringUtils.containsIgnoreCase:检查特定字符串是否包含另一个字符串。

      例如:

      StringUtils.contains(null, *) = false
      StringUtils.contains("abc", "") = true
      

      equalsIgnoreCase:检查两个字符串是否相同。

      例如:

      "Test".equalsIgnoreCase("Test") = true
      "Test".equalsIgnoreCase("T") = false
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-07-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-21
        • 1970-01-01
        • 2012-12-19
        相关资源
        最近更新 更多