You need to enable JavaScript to run this app. Java如何在单行内接收两个整数与运算字符的多类型输入
优惠活动
大模型
产品
解决方案
定价
更多

Java如何在单行内接收两个整数与运算字符的多类型输入

单行混合数据类型输入的简易计算器实现

核心实现逻辑

Java中Scanner类默认将**连续空白字符(空格、制表符、换行)**作为输入拆分的分隔符,不管你把三个输入项分三行敲,还是在同一行用空格隔开敲,它的读取逻辑完全通用,不需要额外写复杂的字符串拆分代码,只需要把原来分三次的输入引导提示改成一次统一引导,原有读取逻辑几乎可以原样沿用。

具体调整步骤

  • 删除原有代码中分三次弹出的“请输入第一个数、请输入运算符、请输入第二个数”的零散提示,替换为一行统一的输入引导,告知用户按整数 运算符 整数的格式在同一行输入,举个直观的输入示例:6 * 9
  • 保留原有nextInt()读取整数、next().charAt(0)读取运算符的核心读取逻辑,不需要额外修改适配单行输入场景
  • 修正原有代码的语法问题:原代码开头的Public static不符合Java语法规范,改为小写public static,补全类定义的完整结构
  • 适配无空格输入的可选方案:如果想要兼容用户直接输入12+3、不打空格的场景,可以把原来的逐段读取改成先通过sc.nextLine()读取整行字符串,再用正则表达式拆分出数字、运算符、第二个数字三个片段赋值给对应变量,但这种实现对编程初学者来说复杂度稍高,优先推荐空格分隔的单行输入方案,逻辑最简洁、不容易出bug

调整后可直接运行的完整代码

import java.util.Scanner;

public class SimpleCalculator {
    public static void main(String[] args) {
        int opr1, opr2, answer;
        char opr;
        Scanner sc = new Scanner(System.in);
        // 统一单行输入引导
        System.out.println("请按「整数 运算符 整数」的格式在同一行输入计算内容,示例:12 + 5");
        opr1 = sc.nextInt();
        opr = sc.next().charAt(0);
        opr2 = sc.nextInt();

        switch (opr) {
            case '+' :
                answer = opr1 + opr2;
                System.out.println("计算结果为: " + answer);
                break;
            case '-' :
                answer = opr1 - opr2;
                System.out.println("计算结果为: " + answer);
                break;
            case '*' :
                answer = opr1 * opr2;
                System.out.println("计算结果为: " + answer);
                break;
            case '/' :
                if(opr2 > 0) {
                    answer = opr1 / opr2;
                    System.out.println("计算结果为: " + answer);
                } else {
                    System.out.println("错误:除数不能为0");
                }
                break;
            default:
                System.out.println("错误:不支持的运算指令");
                break;
        }
    }
}

使用注意事项

  • 输入的运算符仅支持+、-、*、/四个基础算术符号,其他字符会触发default分支的报错提示
  • 按照引导输入时,三个内容块之间要留至少一个空格,否则Scanner会将整段输入识别为单个字符串,无法匹配整数类型触发格式异常

内容的提问来源于stack exchange,提问作者Rashad Aliyev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.10 02:36:04