📌  相关文章
📜  java中如何在字符串中查找单词(1)

📅  最后修改于: 2023-12-03 14:42:43.057000             🧑  作者: Mango

Java中如何在字符串中查找单词

在Java中,我们可以使用正则表达式来查找字符串中的单词。下面是一些示例代码:

示例1:使用Pattern类和Matcher类查找单词
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+ 表示匹配一个或多个字母或数字。PatternMatcher 类用于处理正则表达式和匹配操作。在循环中,使用 m.find() 来查找所有匹配结果,m.group() 返回匹配到的字符串。

示例2:使用String类的split()方法分割字符串
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+ 来表示非单词字符(例如空格、标点符号等)用于分割字符串。在循环中遍历单词数组,输出每个单词。

示例3:使用Scanner类扫描字符串中的单词
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() 来获取单词。