在Java中,可以使用contains()方法或matches()方法来判断一个字符串是否包含另一个字符串。
一、使用contains()方法 {#title-1}
Java中的contains()方法用于检查原字符串(调用方法的字符串)是否包含特定的字符序列。如果原字符串包含指定的字符序列,则返回true,否则返回false。
public class Main {
public static void main(String[] args) {
String str = "Hello, World!";
String subStr = "World";
boolean isContains = str.contains(subStr);
System.out.println(isContains); // 输出:true
}
}
这种方法适合于简单的字符序列检查,不涉及正则表达式的匹配。
二、使用matches()方法 {#title-2}
如果需要频繁使用正则表达式来检查,那么我们可以使用String类的matches()方法。
public class Main {
public static void main(String[] args) {
String str = "Hello, World!";
String regex = ".*World.*";
boolean isMatch = str.matches(regex);
System.out.println(isMatch); // 输出:true
}
}
matches()方法会根据传入的正则表达式返回匹配结果,如果字符串匹配给定的正则表达式则返回true,否则返回false。
三、综合应用 {#title-3}
在实际开发中,可能会遇到比较复杂的情况,比如可能要查找的字符序列事先是未知的,或者需要检查多个字符序列等等。在这种情况下,可以结合使用contains()方法和matches()方法来满足需求。
public class Main {
public static void main(String[] args) {
String str = "Hello, World!";
String[] subStrs = {"Hello", "Java", "World"};
for (String subStr : subStrs) {
if (str.contains(subStr)) {
System.out.println("The string contains " + subStr);
} else {
System.out.println("The string does not contain " + subStr);
}
}
}
}
代码中的字符串数组包含了我们想要检查的所有字符序列,使用一个for-each循环对每个字符序列进行检查,如果原字符串包含当前字符序列,就打印出相应的信息。