我做了这段代码:
var fs = require('fs');
var str = fs.readFileSync('input.txt', 'utf8');
str.split(/\s+/).forEach(function (s) {
return console.log(
s === 'bob'
? 'boy'
: s === 'alicia'
? 'girl'
: s === 'cookie'
? 'dog'
: 'unknown');
});
但是在我的输入文件中有一些空间,并且我不希望我的代码考虑到它。我的输入文件是:
cat
bob
alicia
shirley
cookie
thomas
rat`
那么我该如何编码,以忽略输入文件中的空格?
答案 0 :(得分:2)
首先,如果您会console.log(str.split(/\s+/))
会得到
[ 'cat', 'bob', 'alicia', 'shirley', 'cookie', 'thomas', 'rat`' ]
所以正如大家已经说过的那样,/\s+/
实际上将删除空格
@JuanCaicedo您的解决方案无法正常运行抱歉,我尝试过在cookie和thomas之间留有空间,并且代码写的未知。结果是未知的男孩女孩,未知的狗,未知的未知,未知的,所以在老鼠之后,代码会注意空间
根据您的逻辑,您看到的输出是正确的
s === 'bob'
? 'boy'
: s === 'alicia'
? 'girl'
: s === 'cookie'
? 'dog'
: 'unknown');
如果字符串不等于bob
或alicia
或cookie
,则它将输出未知
cat = unknown
bob = boy
alicia = girl
shirley = unknown
cookie = dog
thomas = unknown
rat` = unknown
答案 1 :(得分:0)
请查看下面的代码
function removeEmptyLines(str) {
const arrayOfLines = str.split("\n"); // Remove empty lines from the string which leaves "" in the returned array
const filtered = arrayOfLines.filter(line => line !== ""); // filter the array and remove all the empty strings
const joined = filtered.join(" "); // form a single string
return joined; // return filtered array
}