14

如何判断子字符串“模板”(例如)是否存在于 String 对象中?

如果它不是区分大小写的检查,那就太好了。

4

5 回答 5

32

String.indexOf(字符串)

对于不区分大小写的搜索,在 indexOf 之前的原始字符串和子字符串上都使用 toUpperCase 或 toLowerCase

String full = "my template string";
String sub = "Template";
boolean fullContainsSub = full.toUpperCase().indexOf(sub.toUpperCase()) != -1;
于 2009-03-26T21:20:33.597 回答
15

使用正则表达式并将其标记为不区分大小写:

if (myStr.matches("(?i).*template.*")) {
  // whatever
}

( ?i)打开不区分大小写,搜索词每端的.*匹配任何周围的字符(因为String.matches适用于整个字符串)。

于 2009-03-26T21:22:24.510 回答
3

您可以使用 indexOf() 和 toLowerCase() 对子字符串进行不区分大小写的测试。

String string = "testword";
boolean containsTemplate = (string.toLowerCase().indexOf("template") >= 0);
于 2009-03-26T21:22:02.220 回答
3
String word = "cat";
String text = "The cat is on the table";
Boolean found;

found = text.contains(word);
于 2015-06-24T04:14:54.163 回答
0
public static boolean checkIfPasswordMatchUName(final String userName, final String passWd) {

    if (userName.isEmpty() || passWd.isEmpty() || passWd.length() > userName.length()) {
        return false;
    }
    int checkLength = 3;
    for (int outer = 0; (outer + checkLength) < passWd.length()+1; outer++) {
        String subPasswd = passWd.substring(outer, outer+checkLength);
        if(userName.contains(subPasswd)) {
            return true;
        }
        if(outer > (passWd.length()-checkLength))
            break;
    }
    return false;
}
于 2020-04-19T05:41:38.760 回答