📅  最后修改于: 2023-12-03 15:24:32.629000             🧑  作者: Mango
在Java中查找句子中的字符串是一项常见的任务,本文将介绍几种常见的方法和技巧。
String类的indexOf方法可以用来查找字符串在另一个字符串中的位置,如果找到了则返回第一个匹配的位置,否则返回-1。以下是一个使用indexOf方法查找字符串的示例代码:
String sentence = "Hello, World!";
String searchString = "World";
int index = sentence.indexOf(searchString);
if (index != -1) {
System.out.println("Found " + searchString + " at index " + index);
} else {
System.out.println("Not found.");
}
输出:
Found World at index 7
如果需要更加精确地匹配字符串,可以使用正则表达式来进行查找。Java中可以使用Pattern和Matcher类来进行正则表达式操作。以下是一个使用正则表达式查找字符串的示例代码:
String sentence = "Hello, World!";
String searchString = "\\bW\\w+\\b";
Pattern pattern = Pattern.compile(searchString);
Matcher matcher = pattern.matcher(sentence);
if (matcher.find()) {
System.out.println("Found " + matcher.group() + " at index " + matcher.start());
} else {
System.out.println("Not found.");
}
输出:
Found World at index 7
在上面的示例代码中,正则表达式\\bW\\w+\\b
匹配以W开头,并且后面至少跟一个数字或字母的单词。
Apache Commons Lang库是一个常用的Java工具库,其中包含了许多实用的字符串操作方法。其中一个方法就是StringUtils.indexOf方法,这个方法与String类的indexOf方法类似,不同的是它可以忽略大小写、检查多个字符串等。
以下是一个使用StringUtils.indexOf方法查找字符串的示例代码:
String sentence = "Hello, World!";
List<String> searchStrings = Arrays.asList("world", "hi");
int index = StringUtils.indexOfAnyIgnoreCase(sentence, searchStrings.toArray(new String[0]));
if (index != -1) {
System.out.println("Found " + sentence.substring(index, index + searchStrings.get(index).length()) + " at index " + index);
} else {
System.out.println("Not found.");
}
输出:
Found World at index 7
在上面的示例代码中,StringUtils.indexOfAnyIgnoreCase方法查找包含多个搜索字符串中的任何一个字符串并返回第一个匹配项的位置。
在Java中查找句子中的字符串可以使用String类的indexOf方法、正则表达式或者Apache Commons Lang库提供的方法。选择哪一种方法取决于具体的需求和情况。