【问题标题】:Can we check if string contains in another string with case insensitive?我们可以检查字符串是否包含在另一个不区分大小写的字符串中吗?
【发布时间】:2017-04-28 02:15:26
【问题描述】:

我想检查字符串是否包含在另一个字符串中,但不区分大小写。

例如 - “Kabir”包含在“Dr.kabir's house.”中。现在,大写 K 的“Kabir”应该可以在“Dr.kabir's house”中找到。这句话中有或没有空格。

我尝试使用包含。但是 contains() 是区分大小写的,我也尝试使用 equalsIgnoreCase() 但它没有用。

       for (int i = 0; i < itemsList.size(); i++) {
        if (matching.contains(itemsList.get(i))) {
            item = itemsList.get(i).trim();
            break;
        }
    }

还尝试将字符串设为大写,但它会检查所有字母是否为大写。我想检查是否只有首字母是大写的。

   for (int i = 0; i < itemsList.size(); i++) {
        if (matching.contains(itemsList.get(i))) {
            item = itemsList.get(i).trim();
            break;
        }
    }

有人可以帮忙吗?谢谢。。

编辑:如果我想从字符串中拆分“kabir”怎么办?

【问题讨论】:

标签: java string compare contains case-insensitive


【解决方案1】:

只需将两个字符串都小写,然后使用contains()

for (int i = 0; i < itemsList.size(); i++) {
    if (matching.toLowerCase().contains(itemsList.get(i).toLowerCase())) {
        item = itemsList.get(i).trim();
        break;
    }
}

【讨论】:

  • 我试过这个。但这会检查所有小写字母或大写字母。但是如果一个词是大写的而其他的都是小写的,比如“Kabir”呢?
  • @Sid 我的解决方案以及其他答案将 both 字符串转换为小写,因此大小写不再重要,只有字母。这有意义吗?
  • 另外,String 是不可变的。所以它不会更改 matching 字符串,除非您为其分配小写值。
  • 如何从字符串中拆分“kabir”? @TimBiegeleisen
  • @Sid 您可以尝试使用String#indexOfString#substring 的组合来隔离子字符串kabir 周围的字符串。
【解决方案2】:

在使用.contains() 方法之前,只需先将两个字符串转换为小写或大写即可。

例如:

if (str1.toLowerCase().contains(str2.toLowerCase()))
    //do whatever

【讨论】:

  • 我试过这个。但这会检查所有小写字母或大写字母。但是如果一个词是大写的而其他的都是小写的,比如“Kabir”呢?
  • @Sid 它仍然可以工作,因为您在执行匹配之前转换了两个字符串。因此,在检查之前,两个字符串都不会包含任何大写字母。
【解决方案3】:

使两个字符串都小写(或大写)

String one = "test";
String two = "TESTY";

if (two.toLowerCase ().contains (one.toLowerCase ())) {
    System.out.println ("Yep");
}
else {
    System.out.println ("Nope");
}

【讨论】:

  • 我试过这个。但这会检查所有小写字母或大写字母。但是如果一个词是大写的,而其他的都是小写的,比如“Kabir”呢?
  • 这使两个单词都小写
猜你喜欢
  • 1970-01-01
  • 2010-09-10
  • 2022-09-02
  • 1970-01-01
  • 2013-03-13
  • 1970-01-01
  • 2015-07-18
  • 2011-12-07
  • 1970-01-01
相关资源
最近更新 更多