题解 | #参数解析#

参数解析

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

1、判断是否是字符串内内容,可以根据flag去做一个判断,如果是则设置为true,在为true期间,遇到空格不需要把数据写进去。

2、在flag为false期间,字符为空格时,把数据写进list,并清空字符串。

3、正常情况把数据写入,遇到字符串时,把flag标记为true。

import java.util.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    private static boolean flag = false;

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNext()) { // 注意 while 处理多个 case
            String data = in.nextLine();
            data+=" ";
            List<String> res = new ArrayList<>();
            StringBuilder sb = new StringBuilder();
            for (char c : data.toCharArray()) {
                if (!flag && c == ' ') {
                    res.add(sb.toString());
                    sb = new StringBuilder();
                } else {
                    if (c == '"') {
                        if (!flag) {
                            flag = true;
                        } else {
                            flag = false;
                        }
                    } else {
                        sb.append(c);
                    }
                }

            }
            System.out.println(res.size());
            for (String str:res) {
                System.out.println(str);
            }
        }
    }
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-25 17:55
点赞 评论 收藏
分享
昨天 17:30
中南大学 Java
带带杨巅峰:清华本也是985本
什么样的背景能拿SSP?
点赞 评论 收藏
分享
机械打工仔:我来告诉你原因,是因为sobb有在线简历,有些HR为了快会直接先看在线简历,初步感觉不合适就不会找你要详细的了
投了多少份简历才上岸
点赞 评论 收藏
分享
07-24 03:49
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务