`

计算器制作JAVA版(第四步,表达式求值(+-*/)混入点号和负号)

阅读更多

前面我们基本上解决了包括四则运算、括号在内的正整数表达式求值。
基本思路是:括号序列属于边界序列行列,在运算中一旦出现*/号就立刻进行计算,出现)号则进行区域性计算,也就是说我们在已经扫描计算过的序列中只剩下数据和+-号运算。这样以来就可以利用前面讲到的栈式计算模式。

那么我们进一步考虑,如果在数据中间包含了小数点怎么办呢?我们发现如果不加处理,则存入的数据和原来的形式相比较,唯一的不同是原来放整数的地方里面多了一些括号,那么如果我们视所有的数据都是double类型的不就可以直接解决这个问题了吗?!是的,我一向喜欢大一统的方式解决问题,在编码初期这样处理是有好处的,不过往后继续升级的时候就得考虑性能问题了。借助这个思路,我们可以假设表达式直接就是有正确的形式,然后统一处理这些数据就可以了。

如果有时间我会继续补充这一部分。
不过可以提醒一下,那个乘方也可以采用这种方式处理。

分享到:
评论

相关推荐

    Java常用正则表达式.txt

    - **解析:** 此表达式确保了QQ号的第一个数字必须是非零数字(即1到9之间的任意一个),接着跟随至少四个数字(0-9)。这样的设计符合腾讯QQ号的规则,因为最短的有效QQ号长度为5位,且不能以0开头。 #### 匹配...

    收集的正则表达式(很经典)

    ### 正则表达式知识点详解 #### 匹配中文字符的正则表达式 - **表达式**: `[\u4e00-\u9fa5]` - **解释**: 此正则表达式用于匹配任何单个中文字符。其中`\u4e00-\u9fa5`表示Unicode编码区间,覆盖了大多数常用汉字。...

    常用的正则表达式,非常的全面

    根据给定的文件标题、描述、标签以及部分内容,本文将详细介绍正则表达式的各个应用场景及其对应的模式匹配规则。正则表达式是一种强大的文本处理工具,用于在文本中查找符合特定模式的字符串。以下是对每种正则...

    eclips快捷键和模拟自动提示输入

    - 默认情况下,此选项值为 `"."`,意味着只有在输入点号时才会触发自动提示。 - 若要改变这一行为,可以在 “.” 后添加其他字符,例如 `abc` 字母,以便于后续查找和修改。 4. **导出配置文件进行修改** - ...

    正则表达式常用匹配.doc

    - **+**:匹配前面的子表达式一次或多次。 - *****:匹配前面的子表达式零次或多次。 - **?**:匹配前面的子表达式零次或一次。 - **|**:表示或,用于选择匹配多个表达式中的任意一个。 - **()**:分组匹配,用于...

    基于Redhat的Linux

    在Redhat发行版的Linux系统中,文件名的最大长度可达256个字符,通常由字母、数字、点号(.)、下划线(_)和减号(-)组成,但严禁使用斜杠(/),因为斜杠在Linux目录结构中具有特殊意义,它标志着根目录或路径中...

    正则表达式大全邮箱和手机的验证.txt

    ### 正则表达式大全:邮箱与手机号码验证 #### 概述 正则表达式是一种强大的文本处理工具,能够帮助我们实现对字符串的搜索、替换等操作。本文将详细介绍几种常用的正则表达式,包括如何验证电子邮件地址、手机号码...

    Java正则表达式介绍及实例

    Java正则表达式是Java编程语言中用于处理字符串的强大工具,它允许程序员通过模式匹配来查找、替换或分割文本。正则表达式在各种场景下都有广泛应用,如数据验证、文本提取、数据清洗等。本篇文章将深入探讨Java中的...

    正则表达式

    ### 正则表达式知识点详解 #### 一、正则表达式基础介绍 正则表达式(Regular Expression),简称regex或regexp,是一种用于处理字符串的强大工具。它通过一系列的符号和字符来描述一种搜索模式,可以用来检查一个...

    最实用最全面的正则表达式

    ### 正则表达式知识点详解 #### 一、概述 正则表达式是一种强大的文本处理工具,被广泛应用于各种编程语言中,用于实现对文本的查找、替换、匹配等功能。本文将详细介绍一系列实用且全面的正则表达式,旨在帮助...

    编译原理--正则表达式文档

    正则表达式是一种强大的文本处理工具,它在编程语言、文本编辑器以及各种解析和搜索应用中被广泛使用。在编译原理中,正则表达式是构建词法分析器(Scanner 或 Lexer)的关键概念,它能简洁地描述语言中的词汇结构。...

    用于前台验证正则表达式文档

    正则表达式是一种强大的文本处理工具,常用于数据验证、搜索、替换等操作。在前端开发中,正则表达式是进行数据校验的关键技术,确保用户输入的数据符合特定格式,从而提高应用的安全性和用户体验。 1. **正则...

    225130322苏少尉.docx

    - **计算过程**:如果表达式合法,使用`eval()`计算表达式的值。 - **格式化结果**:使用`'{:.2f}'.format(result)`将结果格式化为保留两位小数的浮点数。 - **异常处理**:如果计算过程中出现任何异常,则返回...

    一些常见的正则表达式语法用例

    - **正则表达式**: `^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$` - **解释**: 这个正则表达式由几部分组成: - `^` 开始符号,确保整个表达式从输入的开头开始匹配。 - `[a-zA-Z0-9._%+-]+` 匹配用户名...

    68--[自动点号机].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码

    68--[自动点号机].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码68--[自动点号机].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码68--[自动点号机].zip源码scratch2.0 3.0编程项目源文件源码案例...

    正则表达式系统教程;正则表达式系统教程;

    正则表达式(Regular Expression,简称regex)是用于匹配字符串的一种模式,广泛应用于文本处理、数据验证、搜索和替换等场景。系统教程旨在帮助初学者理解正则表达式的概念、语法以及常见应用。 1. **正则表达式...

    javascript代码常用大全

    - 结合日期和短时间的正则表达式进行验证:`/^\d{4}-\d{1,2}-\d{1,2}\s\d{1,2}:\d{1,2}:\d{1,2}$/.test(str)`。 - **2.4 只有年和月。形如(2003-05,或者2003-5)** - 使用 `/^\d{4}-\d{1,2}$/.test(str)` 验证,并...

Global site tag (gtag.js) - Google Analytics