📅  最后修改于: 2023-12-03 14:42:43.057000             🧑  作者: Mango
在Java中,我们可以使用正则表达式来查找字符串中的单词。下面是一些示例代码:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class WordFinder {
public static void main(String[] args) {
String input = "Hello world! This is a sample string.";
String pattern = "\\b\\w+\\b"; // 匹配单词
Pattern p = Pattern.compile(pattern);
Matcher m = p.matcher(input);
while (m.find()) {
System.out.println(m.group()); // 输出找到的单词
}
}
}
上面的代码中使用了 \b\w+\b
的正则表达式,表示要匹配单个单词。其中 \b
表示单词的开头或结尾,\w+
表示匹配一个或多个字母或数字。Pattern
和 Matcher
类用于处理正则表达式和匹配操作。在循环中,使用 m.find()
来查找所有匹配结果,m.group()
返回匹配到的字符串。
public class WordFinder {
public static void main(String[] args) {
String input = "Hello world! This is a sample string.";
String[] words = input.split("\\W+"); // 使用非单词字符分割字符串
for (String word: words) {
System.out.println(word); // 输出单词
}
}
}
上面的代码使用了 split()
方法将字符串分割成单词数组。使用 \W+
来表示非单词字符(例如空格、标点符号等)用于分割字符串。在循环中遍历单词数组,输出每个单词。
import java.util.Scanner;
public class WordFinder {
public static void main(String[] args) {
String input = "Hello world! This is a sample string.";
Scanner scanner = new Scanner(input);
while (scanner.hasNext()) {
String word = scanner.next(); // 获取单词
System.out.println(word); // 输出单词
}
scanner.close();
}
}
上面的代码使用 Scanner
类扫描字符串中的单词。在循环中,使用 scanner.hasNext()
来检查是否还有下一个单词,使用 scanner.next()
来获取单词。