牛客网/赛码网笔试JavaScript(Node)环境下如何处理输入输出

1. readline方法 - 官网示例

// 单行输入
var readline = require('readline');
const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});
rl.on('line', function (line) {
    // write your code here
    var tokens = line.split(' ');
    console.log(parseInt(tokens[0]) + parseInt(tokens[1]));
});

1.1 单行输入 - example

//字符串最后一个单词的长度
var readline = require("readline");
const r1 = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});
r1.on('line', function (line) {
    //找到数组中最后一个空格
    var lastSpacebar = line.lastIndexOf(" ");
    //用splice获取最后一个字符串
    var lastWord = line.slice(lastSpacebar + 1);
    console.log(lastWord.length);
});

1.2.1 多行输入 - example1

//多行输入
var readline = require('readline');
const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});
const lines = [];
rl.on("line", function(line) {
    //将输入放到新建的空数组中
    lines.push(line);
    //判断,如果输入的行数等于某一值时
    if (lines.length === 2){
        //通过数组索引分别得到数组中每一行的数据,并做相应操作
        const num1 = lines[0].split(' ').sort(function(a,b) {return b-a;});
        const num2 = lines[1];        
        // console.log(num1);
        // console.log(num2);
        console.log(num1[num2-1]);
    }
});

1.2.2 多行输入 - example2

//多行输入
const readline = require('readline');
const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});
var inputArr = [];
rl.on('line', function (input) {
    //将输入放到新建的空数组中
    inputArr.push(input);
    //将输入的数据转换为数组
    var inputs = input.split(" ");
    //得到第一行的那个数(行数)
    var nLine = +inputArr[0];
    //判断,如果第一行输入的数字(行数)等于输入的总行数
    if (inputArr.length == (nLine + 1)) {
        //截取第一行到最后一行数据(即:除了第一个数据行数之外的其他数据)
        var arr = inputArr.slice(1);
        //这里打印的arr不包括第一行数字(行数)
        console.log(arr);
        //这里打印的inputArr包括第一行数字(行数)
        // console.log(inputArr);       
        inputArr = [];
        // console.log(inputArr);
    }
});

2. process方法


process.stdin.resume();
process.stdin.setEncoding("ascii")

var input = ""

process.stdin.on("data", function (data) {
    //将输入的数据赋给input
    input += data;
    var chunk = data.slice(0, -2);
    if (chunk === '') {
        process.stdin.emit('end');
    }
})

process.stdin.on('end', function () {
    //将输入的多行数据转换为数组
    var arr = input.split("\n");
    //去掉数组的第一个数据
    arr.shift();
    var arrb = []
    //循环遍历数组,将去重后的数据保存到新的数组arrb中
    for (var i = 0; i < arr.length; i++) {
        if (arrb.indexOf(arr[i]) == -1) {
            arrb.push(arr[i])
        }
    }
    //这里调用了API,排序,将得到的数组arrb排序并且转换为字符串
    var str = arrb.sort(function (a, b) { return a - b; }).join('\n');
    console.log(str);
})
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,131评论 19 139
  • web漏洞原理(源码通过code injection或者file upload获得) SQL注入 Example ...
    JasonChiu17阅读 7,860评论 0 7
  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 10,017评论 0 5
  • 当别的女嘉宾犯傻的时候,他毫不掩饰自己的一脸嫌弃,冷漠无语。 当她犯傻的时候,他会一脸宠溺:你这个笨蛋。忍不住就要...
    Dear乐乐阅读 2,920评论 0 1
  • 终于在刷微博的时候发现了这么有用的App,一直喜欢用文字记录些情绪,生活或者别的,无奈生活节奏太快,笔记本总是丢三...
    梓童_Anne阅读 2,720评论 0 0

友情链接更多精彩内容