题解 | #参数解析#
参数解析
https://www.nowcoder.com/practice/668603dc307e4ef4bb07bcd0615ea677
while ((line = await readline())) {
for (let i = 0; i < line.length; i++) {
if (/"/.test(line[i])) {//若遇到双引号则执行一下函数
x = !x;
if (x) arr.push(line.slice(a + 1, i)), (i += 1), (a = i + 1);//i要加1以跳过引号之后的空格,避免重复添加元素
} else if (/\s/.test(line[i]) && x) {//没遇到引号则正常根据空格分隔元素
arr.push(line.slice(a, i));
a = i + 1;//此时的i为空格的索引,a需要加1避免空格被加入元素中
} else {
if (i == line.length - 1) arr.push(line.slice(a, i + 1));//如果以上两种情况都不满足则意味着到了句末,i需要加1以选到句末的字符
}
}
}
console.log(arr.length);
for (let i = 0; i < arr.length; i++) {
console.log(arr[i]);
}