自己写的。递归。

参数解析

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

import java.util.*;

public class Main {
    public static List<String> res = new ArrayList<>(); //保存分解后的参数
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        while (in.hasNext()) {
            String str = in.nextLine();
            count(str);
            System.out.println(res.size());
            for (String s : res) {
                System.out.println(s);
            }
        }
    }
    public static void count(String str) {
        if (str == null) { 
            return;
        }
        int i = str.indexOf("\"");
        if (i > 0) { //如果有引号
            String sub1 = str.substring(0, i);
            count(sub1);//将引号之前的部分分解出来单独分析
            String sub2 = str.substring(i + 1);//删除前引号以及前面的部分,也就是说保留前引号后面的部分
            int j = sub2.indexOf("\"");//找到对应的后引号的坐标
            String sub3 = sub2.substring(0, j);//截取前后引号中间的内容
            res.add(sub3);//将前后引号中间的内容添加到结果中
            if (j + 2 < sub2.length()) { //判断后引号后面是否还有内容,如果有就进行下一轮判断
                count(sub2.substring(j + 2));
            }
        } else {  //如果没有引号,则按空格分解,依次添加到结果中
            String[] strs = str.split(" ");
            for (String s : strs) {
                res.add(s);
            }
        }
    }
}

全部评论

相关推荐

头像
11-26 15:46
已编辑
中南大学 后端
字节国际 电商后端 24k-35k
点赞 评论 收藏
分享
offer多多的六边形战士很无语:看了你的博客,感觉挺不错的,可以把你的访问量和粉丝数在简历里提一下,闪光点(仅个人意见)
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务