题解 | #参数解析#

参数解析

https://www.nowcoder.com/practice/668603dc307e4ef4bb07bcd0615ea677

import java.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        String s = sc.nextLine();
        StringBuilder sb = new StringBuilder();
        ArrayList<String> list = new ArrayList();
        boolean flag = false;
        for (int i = 0; i < s.length(); i++) {
            char c = s.charAt(i);
            //注意这里是可以这么写的 c == '”'
            if (c == '"') {
                //遇到第一个引号 flag为true,第二个引号 flag为false
                flag = flag ? false : true;
                continue;//继续遍历下一个字符
            }
            //如果c是空格 ,且flag为false时,即没有引号 或已经是第二个引号结束
            if (c == ' ' && !flag) {
                list.add(sb.toString());//往集合中添加当前拼接到的字符串
                //我在这里学到了sb如何置空,只需要重新定义即可
                sb = new StringBuilder();//置空  重新遍历下一个字符
            } else {
                //即不是空格,也不是引号,就继续往里添加
                sb.append(c);
            }
        }
        //注意这里还需要加一次,即把第四个元素加上,因为前面的循环只能加上前三个
        list.add(sb.toString());
        System.out.println(list.size());
        //遍历输出即可
        for (String s1 : list) {
            System.out.println(s1);
        }

    }
}

全部评论

相关推荐

给🐭🐭个面试机会吧:我boss直聘天天有家教跟我打招呼😓
点赞 评论 收藏
分享
黑皮白袜臭脚体育生:春节刚过就开卷吗?哈基馆,你这家伙......
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务