题解 | #参数解析#

参数解析

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


1、遍历字符串
2、将字符放入栈中,遇到空格,弹出栈
3、遇到两次引号,第二次弹出引号间的内容
4、如果第一个字符是引号,单独处理
import java.util.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String cli = in.nextLine();
        Stack<Character> sta = new Stack<>();

        List<String> result = new ArrayList<>();

        Boolean isput = true;
        for(int i = 0;i<cli.length();i++){
            // System.out.println("i="+i+". "+cli.charAt(i));
            if(i==0){
                while(cli.charAt(i)!=' '){
                    //进
                    sta.push(cli.charAt(i));
                    i++;
                }
                i--;
                //出
                StringBuffer sb0 = new StringBuffer();
                Character tmp0;
                
                while(sta.size()!=0){
                    tmp0 = sta.pop();
                    sb0.append(String.valueOf(tmp0));
                }
                result.add(sb0.reverse().toString());
            }
            switch(cli.charAt(i)){
                case ' ':
                    sta.push(cli.charAt(i));
                    i++;
                    if(cli.charAt(i)=='"'){
                        sta.push(cli.charAt(i));
                        i++;
                        while(cli.charAt(i)!='\"'){
                            //进
                            sta.push(cli.charAt(i));
                            i++;
                        }
                        //出
                        StringBuffer sb = new StringBuffer();
                        Character tmp;
                        while( i<cli.length()&&(tmp = sta.pop()) !='\"'){
                            if(String.valueOf(tmp)!="\""){
                                sb.append(String.valueOf(tmp));
                            }
                            
                        }
                        result.add(sb.reverse().toString());
                        continue;
                    }
                    while(i<cli.length()&&cli.charAt(i)!=' '){
                        //进
                        sta.push(cli.charAt(i));
                        i++;
                    }
                    i--;
                    //出
                    StringBuffer sb2 = new StringBuffer();
                    Character tmp2;
                    while( (tmp2 = sta.pop()) !=' '){
                        sb2.append(String.valueOf(tmp2));
                    }
                    result.add(sb2.reverse().toString());
                    continue;
            }
        }
        System.out.println(result.size());
        result.forEach(System.out::println);
        
        
    }
}


全部评论

相关推荐

就前几天旅游的时候,打开抖音就经常刷到这类视频:以前是高学历学生、老师、主持人,现在做着团播、擦边主播的工作,以及那些经过精心包装的“职业转型”故事——从铺天盖地的VLOG到所谓的“04年夜场工作日记”,这些内容在初中升学、高考放榜等关键时间节点持续发酵。可以说非常直接且精准地在潜移默化地影响着心智尚未成熟的青少年,使其对特殊行业逐渐脱敏。那我就想问了:某些传播公司、平台运营者甚至某些夜场的老板,你们究竟在传递怎样的价值观?点开那些视频,评论区里也是呈现明显的两极分化:一种是​​经济下行论​​:“现在就业市场已经艰难到这种程度了吗?”​​一种是事实反驳派​​:这些创作者往往拥有名校背景,从事着...
牛客刘北:被环境教育的,为了能拿到足够的钱养活自己,不甘心也得甘心,现在的短视频传播的思想的确很扭曲,但是很明显,互联网玩上一年你就能全款提A6,但你全心全意不吃不喝工作一年未必能提A6,但是在高考中考出现这个的确很扭曲,在向大家传播“不上学,玩互联网也可以轻松年入百万”,不是人变了,是社会在变
预测一下26届秋招形势
点赞 评论 收藏
分享
屌丝逆袭咸鱼计划:心态摆好,man,晚点找早点找到最后都是为了提升自己好进正职,努力提升自己才是最关键的😤难道说现在找不到找的太晚了就炸了可以鸡鸡了吗😤早实习晚实习不都是为了以后多积累,大四学长有的秋招进的也不妨碍有的春招进,人生就这样
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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