从键盘输入任意字符串,判断该字符串是否包含英文单词(仅包含大小写字母)

从键盘输入任意字符串,判断该字符串是否包含英文单词(仅包含大小写字母),如果包含,输出所有结果,如果不匹配,输出“没有单词”。
使用字符串数组保存匹配结果,假设匹配结果最多不超过10个单词。

该回答引用chatgpt:


import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class WordMatcher {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.print("请输入字符串: ");
        String input = scanner.nextLine();

        String[] words = findEnglishWords(input);

        if (words.length > 0) {
            System.out.println("匹配到的单词如下:");
            for (String word : words) {
                System.out.println(word);
            }
        } else {
            System.out.println("没有单词");
        }
    }

    public static String[] findEnglishWords(String input) {
        List<String> wordList = new ArrayList<>();

        StringBuilder currentWord = new StringBuilder();

        for (int i = 0; i < input.length(); i++) {
            char c = input.charAt(i);

            if (Character.isLetter(c)) {
                currentWord.append(c);
            } else if (currentWord.length() > 0) {
                wordList.add(currentWord.toString());
                currentWord.setLength(0);
            }
        }

        if (currentWord.length() > 0) {
            wordList.add(currentWord.toString());
        }

        String[] words = new String[wordList.size()];
        wordList.toArray(words);

        return words;
    }
}