Code

const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;

void (async function () {
    const line = await readline(); // 读取一行
    const arr = line.split(" "); // 按空格拆分字符串
    console.log(arr[arr.length - 1].length); // 输出最后一个单词的长度
})();

代码详解

代码详解

  1. 输入工具初始化

    const rl = require("readline").createInterface({ input: process.stdin });
    
    • readline 是 Node.js 提供的模块,用于处理输入输出。
    • createInterface 创建了一个输入接口,用于从标准输入流(process.stdin)中读取内容。
  2. 异步迭代器初始化

    var iter = rl[Symbol.asyncIterator]();
    
    • rl[Symbol.asyncIterator]()rl 转换为异步迭代器。
    • 允许通过 iter.next() 异步地按行读取用户输入。
  3. 简化读取函数

    const readline = async () => (await iter.next()).value;
    
    • 定义 readline 函数,用于每次读取一行输入。
    • await iter.next() 返回一个对象 { value: "输入内容", done: false }
    • .value 提取读取到的内容(即用户输入的字符串)。
  4. 读取和处理逻辑

    const line = await readline(); // 读取一行
    const arr = line.split(" "); // 将字符串按空格分割成单词数组
    console.log(arr[arr.length - 1].length); // 输出最后一个单词的长度
    
    • 读取输入后,按空格分割成数组,取最后一个元素的长度并打印。