与大家分享下最近公司给出的一个java2级技能鉴定题目,看起来很简单,但是实现起来自己感觉相当麻烦,不过花了将近一天时间才实现该功能,让自己很有挫败感!希望大家积极的讨论下,希望大牛们给出比较好的解决方案。。。
稍后我会贴出自己的实现的源代码
题目:
实现1~3个数值带括号加减乘除四则运算的功能。
输入需要运算的字符表达式,返回运算以后的结果。
要求:
1、输入的表达式小于等于80个字符,超过有效长度部分不算有效表达式。
2、表达式由”+”、”-“、”*”、”/“、”0~9”、”(“、”)”字符组成,其他字符为非法字符。有非法字符输入按输入错误处理。注意空格是非法字符。
3、表达式满足的定义如下:
表达式 = 数值
表达式 = 表达式 + 运算符(“+”或”-”或“*”或”/”) + 表达式
表达式 = “(” + 表达式 + “)”
数值 = 十进制数值
4、十进制数值由”0”~”9”数字构成,取值范围为: -32768~32767。
正数数值前缀可以带”+”,也可以不带”+”,负数数值前缀必需带”-”。
符号前缀和数值之间不能有其他字符分隔。
数值位数大于等于两位时,首位不能为数值”0”。
表达式错误提示语信息:
1.输入无效
2.除数不能为0
3.缺少左括号
4.缺少右括号
稍后我会贴出自己的实现的源代码
题目:
实现1~3个数值带括号加减乘除四则运算的功能。
输入需要运算的字符表达式,返回运算以后的结果。
要求:
1、输入的表达式小于等于80个字符,超过有效长度部分不算有效表达式。
2、表达式由”+”、”-“、”*”、”/“、”0~9”、”(“、”)”字符组成,其他字符为非法字符。有非法字符输入按输入错误处理。注意空格是非法字符。
3、表达式满足的定义如下:
表达式 = 数值
表达式 = 表达式 + 运算符(“+”或”-”或“*”或”/”) + 表达式
表达式 = “(” + 表达式 + “)”
数值 = 十进制数值
4、十进制数值由”0”~”9”数字构成,取值范围为: -32768~32767。
正数数值前缀可以带”+”,也可以不带”+”,负数数值前缀必需带”-”。
符号前缀和数值之间不能有其他字符分隔。
数值位数大于等于两位时,首位不能为数值”0”。
表达式错误提示语信息:
1.输入无效
2.除数不能为0
3.缺少左括号
4.缺少右括号