题解 | #参数解析#
参数解析
http://www.nowcoder.com/practice/668603dc307e4ef4bb07bcd0615ea677
let line
while(line= readline()){
let arr = line.split(' ')
// console.log(arr.length)
let newArr = []
let addFlag = false //false 未出现分号。true 出现分号
let count = 0
let temp = []
for(let i = 0;i<arr.length;i++){
if(!arr[i].includes('"') && !addFlag){
// 不包含分号,并且没有出现分号
newArr.push(arr[i])
}if(!arr[i].includes('"') && addFlag){
// 不包含分号,已经出现分号
temp.push(arr[i])
}else if(arr[i].includes('"') && !addFlag){
// 包含分号,之前未出现分号,本次出现分号
// 判断本次字符串是否包含两个分号
// 如果出现一次则往temp里面push
// 出现两次则直接往newArr里面push
let semiconCount = 0
for(let j = 0;j<arr[i].length;j++){
if(arr[i][j].includes('"')){
semiconCount++
}
}
if(semiconCount>1){
count = 0
temp = []
newArr.push(arr[i])
addFlag = false
}else{
temp.push(arr[i])
count++
addFlag = true
}
}else if(arr[i].includes('"') && addFlag){
// 如果出现了分号并且之前也出现了分号,则是
// 该数组为temp,newArr里面push新构成的字符串
// count为2代表出现第二次分号的时机
count++
if(count == 2){
addFlag = false
count = 0
}
temp.push(arr[i])
newArr.push(temp.join(' '))
temp = []
}
}
console.log(newArr.length)
newArr.map(i=>{
console.log(i.replace(new RegExp(/\"/,'g'),''))
})
}