如何查看Java 1.4中另一个字符串中是否存在子字符串?

时间:2009-03-26 21:17:48

标签: java string substring

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

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

5 个答案:

答案 0 :(得分:31)

String.indexOf(String)

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

String full = "my template string";
String sub = "Template";
boolean fullContainsSub = full.toUpperCase().indexOf(sub.toUpperCase()) != -1;

答案 1 :(得分:13)

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

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

(?i)会启用不区分大小写,并且搜索词两端的。* 会匹配任何周围的字符(因为 String.matches < / strong>适用于整个字符串)。

答案 2 :(得分:3)

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

String string = "testword";
boolean containsTemplate = (string.toLowerCase().indexOf("template") >= 0);

答案 3 :(得分:2)

String word = "cat";
String text = "The cat is on the table";
Boolean found;

found = text.contains(word);

答案 4 :(得分: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;
}