You need to enable JavaScript to run this app.
最新活动
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Java检查计算器程序

下面是一个使用Java编写的检查计算器程序的示例代码:

import java.util.Scanner;

public class Calculator {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.print("请输入表达式: ");
        String expression = scanner.nextLine();

        if (isValidExpression(expression)) {
            int result = evaluateExpression(expression);
            System.out.println("计算结果: " + result);
        } else {
            System.out.println("表达式无效,请重新输入。");
        }

        scanner.close();
    }

    public static boolean isValidExpression(String expression) {
        // 检查表达式是否包含非法字符
        String validChars = "0123456789+-*/";
        for (char c : expression.toCharArray()) {
            if (validChars.indexOf(c) == -1) {
                return false;
            }
        }

        // 检查表达式是否包含连续运算符或以运算符开始/结束
        String operators = "+-*/";
        for (int i = 0; i < expression.length() - 1; i++) {
            char c1 = expression.charAt(i);
            char c2 = expression.charAt(i + 1);
            if (operators.indexOf(c1) != -1 && operators.indexOf(c2) != -1) {
                return false;
            }
        }

        return true;
    }

    public static int evaluateExpression(String expression) {
        // 分割表达式为运算符和操作数
        String[] tokens = expression.split("(?<=[-+*/])|(?=[-+*/])");

        // 初始化运算结果为第一个操作数
        int result = Integer.parseInt(tokens[0]);

        // 遍历运算符和操作数进行计算
        for (int i = 1; i < tokens.length - 1; i += 2) {
            String operator = tokens[i];
            int operand = Integer.parseInt(tokens[i + 1]);

            switch (operator) {
                case "+":
                    result += operand;
                    break;
                case "-":
                    result -= operand;
                    break;
                case "*":
                    result *= operand;
                    break;
                case "/":
                    result /= operand;
                    break;
            }
        }

        return result;
    }
}

这个程序通过检查输入的表达式是否包含非法字符和连续运算符来判断其是否有效。如果表达式有效,则通过遍历运算符和操作数进行计算,并返回最终结果。如果表达式无效,则程序会提示重新输入。

本文内容通过AI工具匹配关键字智能整合而成,仅供参考,火山引擎不对内容的真实、准确或完整作任何形式的承诺。如有任何问题或意见,您可以通过联系service@volcengine.com进行反馈,火山引擎收到您的反馈后将及时答复和处理。
展开更多
面向开发者的云福利中心,ECS 60元/年,域名1元起,助力开发者快速在云上构建可靠应用

社区干货

阿里巴巴的 Java 开发手册(黄山版)来了

后来还买了实体的《Java开发手册》和《码出高效》两本书。其实这本小册子并不是什么深度的内容,但是却让我受益匪浅——你写不出复杂高深的代码,但是至少能写出规范、干净、同事看了不喊“卧槽”而是喊“卧槽牛逼”的代码。在这篇文章中我将会挑选几条手册中的编程规约做一个简单的导读。**友情提示,文末有手册下载方式哦。**>对软件来说,适当的 规范和标准绝不是消灭代码内容的创造性、优雅性,而是限制过度个性化,以一种...

社区征文|ChatGPT教我如何面试

曾参与过多个项目的测试工作,具有扎实的测试理论和实践经验。我熟悉常用的测试方法和工具,并且具有较强的学习能力和团队合作精神。我相信,我的专业知识和工作经验,将为公司的软件测试工作做出重要贡献。> 点评:回答比较模版化,缺乏个性###### Q:了解Java多线程吗?是的,我了解Java多线程。Java支持多线程编程,它允许程序中的多个线程同时执行不同的任务。这种特性使得Java程序能够更有效地利用计算机的多核处理器,提高程序的...

开源Java诊断工具Arthas:开篇之watch实战

## 一、前言 - 还在为排查Java程序线上问题头痛吗,看我们用阿里开源的诊断神器 Arthas 来帮您- 本文开篇主要介绍 阿里开源的诊断神器Arthas 3.7.0版本,watch、jad、classloader 命令,以 Debian 11、openjdk 11 为例## 二、Arthas 简介和安装 ### 1. [简介](https://arthas.aliyun.com/doc/) - Arthas 是一款线上监控诊断产品,通过全局视角实时查看应用 load、内存、gc、线程的状态信息- 并能在不修改应用代码的情况下,...

Java程序性能分析:内存

jstat 全称 “Java Virtual Machine statistics monitoring tool”,位于 JDK 的 bin 目录下,用于对 Java 程序的资源和性能进行监控,包括 Heap size、垃圾回收状况 等。- jstat --help:查看命令帮助- jstat -op... 可以快速判断那一次GC的耗时;GCT / GC = 平均每次GC耗时- GC是否频繁标准参考:Young GC执行迅速(50毫秒以内)、Young GC执行不频繁(间隔10秒左右一次)、Full GC执行迅速(1秒以内)、Full GC执行不频繁(间隔10分钟左...

特惠活动

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

Java检查计算器程序-优选内容

阿里巴巴的 Java 开发手册(黄山版)来了
后来还买了实体的《Java开发手册》和《码出高效》两本书。其实这本小册子并不是什么深度的内容,但是却让我受益匪浅——你写不出复杂高深的代码,但是至少能写出规范、干净、同事看了不喊“卧槽”而是喊“卧槽牛逼”的代码。在这篇文章中我将会挑选几条手册中的编程规约做一个简单的导读。**友情提示,文末有手册下载方式哦。**>对软件来说,适当的 规范和标准绝不是消灭代码内容的创造性、优雅性,而是限制过度个性化,以一种...
Java SDK
1. 安装SDK 1.1 下载SDK当前SDK版本:v2.0.15 【附件下载】: datatester-java-sdk-2.0.15.jar,大小为 1.2 添加jar包java版本需求:Java 8及更高版本 导入方式:将jar文件添加至项目Modules 以主流IDE(IntelliJ IDEA... 仅用于测试,请勿在生产环境使用 UserAbInfoHandler memoryHandler = MemoryHandler.getInstance(); abClient.setUserAbInfoHandler(memoryHandler); // 推荐接口 String def...
社区征文|ChatGPT教我如何面试
曾参与过多个项目的测试工作,具有扎实的测试理论和实践经验。我熟悉常用的测试方法和工具,并且具有较强的学习能力和团队合作精神。我相信,我的专业知识和工作经验,将为公司的软件测试工作做出重要贡献。> 点评:回答比较模版化,缺乏个性###### Q:了解Java多线程吗?是的,我了解Java多线程。Java支持多线程编程,它允许程序中的多个线程同时执行不同的任务。这种特性使得Java程序能够更有效地利用计算机的多核处理器,提高程序的...
开源Java诊断工具Arthas:开篇之watch实战
## 一、前言 - 还在为排查Java程序线上问题头痛吗,看我们用阿里开源的诊断神器 Arthas 来帮您- 本文开篇主要介绍 阿里开源的诊断神器Arthas 3.7.0版本,watch、jad、classloader 命令,以 Debian 11、openjdk 11 为例## 二、Arthas 简介和安装 ### 1. [简介](https://arthas.aliyun.com/doc/) - Arthas 是一款线上监控诊断产品,通过全局视角实时查看应用 load、内存、gc、线程的状态信息- 并能在不修改应用代码的情况下,...

Java检查计算器程序-相关内容

Java应用接入

查看metrics是否接入成功。 (可选)步骤三:异常排查 如果没有上报数据,请通过以下操作逐步排查: 检查服务是否正常成功启动。 在启动参数加上-Dapmplus.logging.level=DEBUG,开启debug日志,查看logs目录下的agent日志是否有异常。 容器部署如果您的应用是基于Kubernetes集群部署,请参见以下流程接入APMPlus服务端。 步骤一:k8s集群接入Server Agent 方式1:通过kubectl命令行接入进入接入中心,选择Java语言 > APMPlus > 容器部署,...

关于一名资深Java程序员在移动端的进阶之路|社区征文

当时我们后端是 Java 语言。从此我就开始了我的 Java 职业旅程。## 初识移动端### H5开始入门首先,我自己是主要做后端 Java 开发,但是业内应该都知道,Java 很卷的,起初,我做过 Jsp 页面的,后来是前后端分离,页... 之前我用的是 VsCode 写页面,这也算是发现新大陆了。主要对于我这种不专业的前端开发人员来说,是一个非常不错的开发神器了。它的特点就是:**入门超级简单**。### 微信小程序开发这里我不得不说这个开发工具真心...

使用内存泄漏监控和泄漏兜底服务

Java ApmInsightInitConfig.Builder builder = ApmInsightInitConfig.builder();//开启泄露和泄露兜底检测能力,泄露检测和泄露兜底需要分别在平台配置采样builder.detectActivityLeak(new IActivityLeakListener... // DEBUG 级别Log会汇总所有被插桩处理的类供查看,路径 app/build/ByteX/ApmPlugin/ApmPlugin_log.txt logLevel "DEBUG"// 启动分析开关:监控App启动耗时,需要同时开启pageLoadSwitch startSwitch = true// ...

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

快速开始

您可以通过此示例项目测试日志服务 Android SDK 的日志采集能力,跑通日志采集流程。 通过示例项目创建 Android 应用程序。在 GitHub 中下载示例项目的源码。 通过 Android Studio 创建项目,并导入源码文件。 在 PutLogExample.java 文件的属性部分中配置火山引擎密钥及 Topic ID 等信息。 测试应用程序的日志采集能力。将 Android 设备连接至计算机。 在 Android Studio 里点击 Run 'app'。成功运行后,示例项目会安装到指定 And...

万字长文带你漫游数据结构世界|社区征文

计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号总称。那为何加上**“结构”**两字?**数据元素是数据的基本单位**,而任何问题中,数据元素都不是独立存在的,它们之间总是存在着某种关系,这种**数... 测试代码如下:```javapublic class Test { public static void main(String[] args) { MyList myList = new MyList(); myList.add(1); myList.add(2); // 1->2 my...

普通下载(Java SDK)

普通下载是指通过 getObject 接口下载单个对象(Object)。TOS Java SDK 支持将对象下载到内存、下载到本地文件两种方式,且支持下载对象时重写 HTTP 响应头。 注意事项下载对象前,您必须具有 tos:GetObject 权限,具体操作,请参见权限配置指南。 对于开启多版本的桶,下载指定版本对象时,您必须具有 tos:GetObjectVersion 权限,具体操作,请参见权限配置指南。 如果应用程序会在同一时刻大量下载同一个对象,您的访问速度会受到 TOS 带...

Java内存马介绍

# 内存马介绍内存马其实由来已久,早在十几年前,内存马的技术雏形就已经在Windows平台出现,以线程注入为代表的这一类技术,通过将木马注入到系统进程和删除自身进程的方式,来躲避杀毒软件的查杀和实现自身的隐藏。随着技术的发展,攻击目标的变迁,内存马也渐渐在不同的层面获得了发展,攻击范围涵盖操作系统脚本、进程,Java容器和Web服务程序等,攻击方式多变且复杂。Java内存马即运行在内存中的Java后门木马,它没有落地文件,隐蔽...

Java SDK

>"查看上报时延"章节内容来查看上报的时延。SDK>=1.5.6 版本,支持批量。 FILE 不推荐 复杂 很高 低,写文件之后还需要使用logagent来进行上报。 无 KAFKA 同一个网络,建议使用该模式。 简单 很高 高 ... 1.3.3 在普通 java 程序手动初始化java DataRangersSDKConfigProperties properties = new DataRangersSDKConfigProperties();// 设置模式properties.setMode(SdkMode.HTTP);// 设置domain。 注意设置成真实的参...

Java SDK

>"查看上报时延"章节内容来查看上报的时延。SDK>=1.5.6 版本,支持批量。 FILE 不推荐 复杂 很高 低,写文件之后还需要使用logagent来进行上报。 无 KAFKA 同一个网络,建议使用该模式。 简单 很高 高 ... 1.3.3 在普通 java 程序手动初始化java DataRangersSDKConfigProperties properties = new DataRangersSDKConfigProperties();// 设置模式properties.setMode(SdkMode.HTTP);// 设置domain。 注意设置成真实的参...

特惠活动

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

产品体验

体验中心

云服务器特惠

云服务器
云服务器ECS新人特惠
立即抢购

白皮书

一图详解大模型
浓缩大模型架构,厘清生产和应用链路关系
立即获取

最新活动

爆款1核2G共享型服务器

首年60元,每月仅需5元,限量秒杀
立即抢购

火山引擎增长体验专区

丰富能力激励企业快速增长
查看详情

数据智能VeDI

易用的高性能大数据产品家族
了解详情

一键开启云上增长新空间

立即咨询