一、字符串包含基础概念
Java中的字符串是一种对象类型,由一串字符组成。包含使用场景中经常出现的字符串是否包含某个字符,或是某段指定的字符串是否在一个大的字符串中等问题。在Java中,我们可以使用contains()方法来判断一个字符串是否包含另一个字符串。
String str1 = "Hello, world!"; String str2 = "world"; boolean result = str1.contains(str2); // 输出true System.out.println(result);
上面的代码中,我们可以看到contains()方法被用来判断str1字符串是否包含str2字符串,最终结果输出true。
二、子串匹配
字符串包含还可以涉及到子串匹配的问题。在Java中,可以通过indexOf()方法实现子串匹配。
String str = "Hello, world!"; String subStr = "world"; int index = str.indexOf(subStr); // 输出7 System.out.println(index);
上面的代码中,我们可以看到indexOf()方法被用来查找subStr字符串在str字符串中的索引位置,最终结果输出7。如果子串不存在于原字符串中,indexOf()方法会返回-1。
三、多个子串匹配
如果需要匹配多个子串,可以使用正则表达式来实现。Java中有许多正则表达式库,例如java.util.regex包。下面是一个匹配多个子串的示例:
String str = "Hello, world!"; String pattern = "Hell|world"; // 创建Pattern对象 Pattern p = Pattern.compile(pattern); // 创建Matcher对象 Matcher m = p.matcher(str); while (m.find()) { System.out.println("Match: " + m.group()); }
上面的代码中,我们使用正则表达式的管道符(|)匹配"Hell"和"world"。然后,通过find()方法遍历匹配结果,最终结果输出匹配的子串。
四、忽略大小写匹配
有时候,需要进行字符串包含匹配时,希望忽略大小写的差异。Java中可以使用equalsIgnoreCase()方法来实现忽略大小写的字符串包含匹配:
String str1 = "Hello, world!"; String str2 = "hello, WORLD!"; boolean result = str1.equalsIgnoreCase(str2); // 输出true System.out.println(result);
上面的代码中,我们可以看到equalsIgnoreCase()方法被用来判断str1字符串是否包含str2字符串,忽略了大小写的区别,最终结果输出true。
五、包含多种模式匹配
在字符串包含匹配中,一些高级用例可能包含多种匹配模式。Java中可以通过正则表达式来实现多种模式匹配,例如:
String str = "Hello, world!"; String pattern = "(\\b\\w+\\b)"; // 创建Pattern对象 Pattern p = Pattern.compile(pattern); // 创建Matcher对象 Matcher m = p.matcher(str); while (m.find()) { System.out.println("Match: " + m.group()); }
上面的代码中,我们使用正则表达式的"\\b"符号来匹配单词边界,并使用"\\w+"符号匹配单词本身。然后,通过find()方法遍历匹配结果,最终输出匹配到的单词。