【问题标题】:Case-insensitive substring search [duplicate]不区分大小写的子字符串搜索
【发布时间】:2013-11-05 13:12:09
【问题描述】:

我正在尝试使用IgnoreCase 在另一个字符串中查找子字符串的位置。
示例:

String str ="aabbssddaa", str2="ab";
str.indexOf(str2);

我想找到不区分大小写的str2的位置。表示 str2= 其中任何一个 "ab","Ab","aB","AB"
而且我只想遍历字符串一次。

【问题讨论】:

  • str.toLowerCase().indexOf(str2.toLowerCase())。你可以这样做,也可以用其他方式。我的意思是大写

标签: java string


【解决方案1】:

最简单的方法是在两个字符串上都使用toLowerCase()toUpperCase()

【讨论】:

  • thanx 好逻辑.. :)
  • 除非这并不总是有效。 joelonsoftware.com/articles/Unicode.html
  • @KevinPanko 有什么解释吗?我不是在处理 ASCII,我使用的是 Java 的 String 操作,这些操作是根据 Unicode 字符明确定义的。特别是,toUpperCase()CASE_INSENSITIVE_ORDER 有何不同?
  • 查看字母 I 的土耳其规则。大写 i 结果是 İ 这意味着如果你这样做 foo.toUpperCase().equals("EXIT") 它将在美国英语中为真,在土耳其时为假@ 987654330@ 是字符串"exit"
  • @KevinPanko 该错误使用了错误的字符集。而且您还没有说这与 CASE_INSENSITIVE_ORDER 有何不同,后者是次佳选择。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-12-20
  • 1970-01-01
  • 1970-01-01
  • 2014-10-07
  • 2011-08-09
  • 2014-07-07
  • 1970-01-01
相关资源
最近更新 更多