题解 | #参数解析#

参数解析

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

const readline = require('readline');

const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});
rl.on('line', function (line) {
    handleParams(line)
});


function handleParams(str: string){
    // 判断是否有双引号
    if(!str.includes('"')){
        const arr = str.split(" ")
        console.log(arr.length)
        arr.forEach((item)=>{
            console.log(item)
        })
    }else {
        /**
         * 有双引号需要做特殊处理
         * 1、将字符串以"分割
         * 2、找到字符串中原本在双引号里面的内容,将里面的额空格替换为其他字符
         * 3、将分割的字符串合成字符串,然后以空格重新分割
         * 4、将分割后的字符串中的2步骤替换空格的字符重新替换位空格
         * 5、循环输出各个参数
         */ 
        const buf = str.split('"')
        buf.forEach((item, i)=>{
            // 找到字符串中原本在双引号里面的内容,将里面的额空格替换为其他字符
            if(i % 2){
                buf[i] = buf[i].replace(/\s/g, '--')
            }
        })
         
         const buf2 = buf.join("").split(" ")
         console.log(buf2.length)
         buf2.forEach((item,i)=>{
            buf2[i] = buf2[i].replace(/--/g, ' ').replace(/'"'/g, "")
            console.log(buf2[i])
         })
    }
}

全部评论

相关推荐

头顶尖尖的程序员:我也是面了三四次才放平心态的。准备好自我介绍,不一定要背熟,可以记事本写下来读。全程控制语速,所有问题都先思考几秒,不要急着答,不要打断面试官说话。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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