题解 | #参数解析#
参数解析
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]) }) } }