如何在整个字符串中搜索特定单词?

2022-09-05 00:26:41

我有这个代码,它搜索一个字符串数组,如果输入字符串与字符串的第一个字符匹配,则返回结果:

for (int i = 0; i < countryCode.length; i++) {
            if (textlength <= countryCode[i].length()) {
                if (etsearch
                        .getText()
                        .toString()
                        .equalsIgnoreCase(
                                (String) countryCode[i].subSequence(0,
                                        textlength))) {
                    text_sort.add(countryCode[i]);
                    image_sort.add(flag[i]);
                    condition_sort.add(condition[i]);
                }
            }
        }

但是我想得到那些字符串,其中输入字符串不仅在第一个字符中匹配,而且在字符串中的任何位置匹配?如何做到这一点?


答案 1

有三种方法可以搜索字符串是否包含子字符串:

String string = "Test, I am Adam";
// Anywhere in string
b = string.indexOf("I am") > 0;         // true if contains 

// Anywhere in string
b = string.matches("(?i).*i am.*");     // true if contains but ignore case

// Anywhere in string
b = string.contains("AA")  ;             // true if contains but ignore case

答案 2

我没有足够的“声誉点”来回复评论,但接受的答案中存在错误。indexOf() 在找不到子字符串时返回 -1,因此它应该是:

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

推荐