题解 | #参数解析#

参数解析

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

分3种情况
1、遇到空格时,结束当前子字符串,开启下一个子字符串
2、遇见 " 时 用循环从当前开始,到下一个 " 结束,其间的字符归到一个字符串 
3、普通字符时 存储到一个字符串内

import java.util.*;

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

        while (in.hasNext()) {
            String s = in.nextLine();
            int len = s.length();

            StringBuffer str = new StringBuffer();
            ArrayList<String> arrayList = new ArrayList<>();
            for (int i = 0; i < len ; i++) {
                char ch = s.charAt(i);

                if (ch == '"') {
                    //“ ” 号内部的字符全部假如到一个子字符串
                    if (s.charAt(i - 1) != ' ') {
                        arrayList.add(str.toString());
                        //把前一个字符串加入到arrayList中
                        str = new StringBuffer();
                    }
                    i += 1;
                    while ( i < len && s.charAt(i) != '"') {
                        str.append(s.charAt(i++));
                    }

                } else if (ch == ' ') { //遇见空格,表示前一个字符串完毕,封存
                    arrayList.add(str.toString());
                    str = new StringBuffer();
                } else {
                    str.append(ch); 
                }
            }
            //封存最好一个子字符串
            arrayList.add(str.toString());

            System.out.println(arrayList.size());
            for (String s1 : arrayList) {
                System.out.println(s1);
            }
        }
    }
}


全部评论

相关推荐

kl_我是东山啊:《相关公司:阿里巴巴》
投递阿里巴巴等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务