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

