思路:灵活运用String.repalce/replaceAll/split方法

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        String input = scan.nextLine();

        List<String> list = new ArrayList<>();
        //判断是否有引号
        if (input.contains("\"")) {
            list=result(input);
        } else {
            //若不包含引号
            String[] inputs = input.split(" ");
            for (String item : inputs) {
                list.add(item);
            }
        }

        //输出
        System.out.println(list.size());
        for(String item:list){
            System.out.println(item);
        }



    }

    //若包含引号
    public static ArrayList<String> result(String input) {
        ArrayList<String> list = new ArrayList<>();
        //先利用"划分数组,不带引号的字符串一定是以空格开头或结尾
        String[] inputs = input.split("\"");

        //对以空格开头或结尾的字符串,利用" " 划分,
        for (String item : inputs) {
            if (item.startsWith(" ") || item.endsWith(" ")) {
                //使用空格划分,并分行输出各元素
                String[] items = item.split(" ");
                for (String item2 : items) {
                    if (!item2.equals("")) list.add(item2);
                }
            } else {
                list.add(item);
            }
        }
        return list;
    }

}