当前位置:首页 > JavaScript

js实现Scanner

2026-03-15 07:29:30JavaScript

js实现Scanner

JavaScript 实现类似 Java Scanner 的功能

JavaScript 没有内置的 Scanner 类,但可以通过以下方式模拟类似功能:

js实现Scanner

使用浏览器控制台输入

function Scanner() {
  this.nextLine = function() {
    return prompt("Enter input:");
  };
  this.nextInt = function() {
    return parseInt(prompt("Enter integer:"));
  };
  this.nextFloat = function() {
    return parseFloat(prompt("Enter float:"));
  };
}

const scanner = new Scanner();
const name = scanner.nextLine();
const age = scanner.nextInt();

使用 Node.js 的 readline 模块

const readline = require('readline');

function Scanner() {
  const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
  });

  this.nextLine = function() {
    return new Promise(resolve => {
      rl.question('', answer => {
        resolve(answer);
      });
    });
  };

  this.nextInt = async function() {
    const input = await this.nextLine();
    return parseInt(input);
  };

  this.close = function() {
    rl.close();
  };
}

(async function() {
  const scanner = new Scanner();
  console.log("Enter your name:");
  const name = await scanner.nextLine();
  console.log("Enter your age:");
  const age = await scanner.nextInt();
  scanner.close();
})();

处理字符串输入

如果需要从字符串中解析数据:

function Scanner(input) {
  this.input = input.trim().split(/\s+/);
  this.index = 0;

  this.hasNext = function() {
    return this.index < this.input.length;
  };

  this.next = function() {
    return this.input[this.index++];
  };

  this.nextInt = function() {
    return parseInt(this.next());
  };

  this.nextFloat = function() {
    return parseFloat(this.next());
  };
}

const scanner = new Scanner("John 25 175.5");
const name = scanner.next();
const age = scanner.nextInt();
const height = scanner.nextFloat();

注意事项

浏览器环境中的 prompt() 会阻塞 UI 线程 Node.js 版本需要使用异步/await 处理输入 字符串解析版本是同步的,适合处理预定义的输入 可以根据需要扩展更多方法如 nextDouble(), nextBoolean() 等

标签: jsScanner
分享给朋友:

相关文章

js实现延迟

js实现延迟

实现延迟的方法 在JavaScript中,实现延迟操作有多种方式,以下是几种常见的方法: 使用setTimeout函数 setTimeout是JavaScript中最常用的延迟执行方法。它接受一个回…

js树实现

js树实现

树的基本概念 树是一种非线性的数据结构,由节点和边组成。每个节点包含一个值和指向子节点的引用。树的顶部节点称为根节点,没有子节点的节点称为叶节点。 树的实现方式 在JavaScript中,树可以通过…

js实现授权

js实现授权

授权流程设计 授权流程通常涉及前端与后端的交互,常见方案包括OAuth2.0、JWT等。以JWT为例的典型流程: 用户提交凭证(如用户名密码)到认证服务 服务端验证通过后生成包含用户信息的JWT令牌…

js实现跑马灯

js实现跑马灯

实现跑马灯效果 使用HTML和JavaScript可以轻松实现跑马灯效果。以下是两种常见的实现方式: HTML结构 <div id="marquee"> <span>…

js实现 功能

js实现 功能

在 JavaScript 中实现功能通常涉及多个关键步骤,具体取决于功能需求。以下是常见功能的实现方法和示例: 基本功能实现 使用函数封装逻辑是最直接的方式。例如,实现一个计算两数之和的函数: f…

js图片上传实现

js图片上传实现

图片上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API实现基础图片上传功能。HTML部分需要设置accept="image/…