在 Java 中,如何检查字符串是否包含子字符串(忽略大小写)?

新手上路,请多包涵

我有两个 String s, str1str2 。如何检查 str2 是否包含在 str1 中,忽略大小写?

原文由 trinity 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 590
2 个回答
str1.toUpperCase().contains(str2.toUpperCase())

更新:

原始答案是使用 toLowerCase() 方法。但正如某些人正确注意到的那样,Unicode 中存在一些例外情况,最好使用 toUpperCase() 。因为:

对于一种大写变体,有些语言知道不止一种小写变体。

原文由 Igor Artamonov 发布,翻译遵循 CC BY-SA 4.0 许可协议

matches() 怎么样?

 String string = "Madam, I am Adam";

// Starts with
boolean  b = string.startsWith("Mad");  // true

// Ends with
b = string.endsWith("dam");             // true

// Anywhere
b = string.indexOf("I am") >= 0;        // true

// To ignore case, regular expressions must be used

// Starts with
b = string.matches("(?i)mad.*");

// Ends with
b = string.matches("(?i).*adam");

// Anywhere
b = string.matches("(?i).*i am.*");

原文由 Jim Raynor 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题