• 用node.js解决编程题的输入问题


    1.读取一行输入

    const readline = require('readline');//在这里引入
    
    const rl = readline.createInterface({ //创建输入输出接口
      input: process.stdin,
      output: process.stdout
    });
    
    rl.on('line',function(line){//监听控制台的输入
     var data=line.trim();//拿到控制台输入
     var result=....//编程逻辑处理
    console.log(result); //输出结果
    });

    读取一行中的两个数据:

    var readline = require('readline');
    const rl = readline.createInterface({
        input: process.stdin,
        output: process.stdout,
    });
    rl.on('line', function(line) {
    var data1=line.split(' ')[0];
    var data2=line.split(' ')[1];
    console.log(data1);
    });

     

    2.读取两行输入

    题目:输入两行,第一行是字符串s1,第二行是字符串s2,输出两个字符串连接后的结果。
    例子:

    输入  "hello"
          "world"
          
    输出  "helloworld"  
     

    代码如下:

    const readline = require('readline');
    
    const rl = readline.createInterface({ 
      input: process.stdin,
      output: process.stdout
    });
    
    var k=2;//这里代表题目中设定好的输入的行数
    var rows=[]; //用于存储每行的输入
    
    rl.on('line',function(line){
     rows.push(line);//将每次输入的行数据存入
     if(k==rows.length){//当输入的行数等于设定的k值时,开始逻辑处理
     
       var result=rows[0]+rows[1]; //连接字符串
       console.log(result); //输出结果
       
       rows.length=0;//状态重置
     }
    
    });
    

    3.N行输入的在线编程

    题目:输入数字N(1<N<10),接下来输入N行字符串,输出所有字符串连接后的新字符串。
    例子:

    输入:4
         "nice"
         "to"
         "meet"
         "you"
         
    输出:"nicetomeetyou"  
    

    代码如下:

    const readline = require('readline');
    
    const rl = readline.createInterface({ 
      input: process.stdin,
      output: process.stdout
    });
    
    var k=-1;//先给行数置-1,表示还没开始读取
    var rows=[]; //用于存储每行的输入
    
    rl.on('line',function(line){
     if(k<0){
       k=parseInt(line.trim());//读取第一行,得到接下来输入的行数
     }else{
       rows.push(line.trim());//将每次输入的行数据存入
        if(k==rows.length){//当输入的行数等于设定的k值时,开始逻辑处理
     
         var result=rows.reduce(function(fir,cur){ //连接字符串
         return fir+cur;
       });
         console.log(result); //输出结果
       
         rows.length=0;//状态重置
         k=-1;
       }
     }
    });
       

    4..通用性的方式:按照数据流输入的方式

    在做笔试时碰到过例题的输入方式,不是按行读入的,是一次性读入,然后按照“ ”进行行分隔

    process.stdin.resume();
    process.stdin.setEncoding('ascii');
    
    var input = "";
    var input_array = "";
    
    process.stdin.on('data', function (data) {
        input += data;
    });
    
    process.stdin.on('end', function () {
        input_array = input.split("
    ");
        var nLine = 0;
    
        while(nLine < input_array.length){
            var line = input_array[nLine++].trim();
            if(line === ''){
                continue;
            }
            var input_arrays = line.split(' ');
            var a = +input_arrays[0];
            var b = +input_arrays[1];
            console.log(a+b);
        }
    });
  • 相关阅读:
    A Tour of Go Switch
    A Tour of Go Exercise: Fibonacci closure
    curl的简单使用
    thinkphp自动验证方法的使用
    Forbidden You don't have permission to access / on this server. You don't have permission to access /phpmyadmin/ on this server. 解决办法
    创建、删除文件夹和文件夹里的文件
    图片的copy,从一个目录复制到另一个目录
    如何把内容写入到文件
    读取文件操作
    文件打开操作
  • 原文地址:https://www.cnblogs.com/PeriHe/p/7768772.html
Copyright © 2020-2023  润新知