奇怪的表达式求值 (java实现)
Posted smallji
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了奇怪的表达式求值 (java实现)相关的知识,希望对你有一定的参考价值。
题目参考:http://blog.csdn.net/fuxuemingzhu/article/details/68484749
问题描述;
题目描述:
常规的表达式求值,我们都会根据计算的优先级来计算。比如*/的优先级就高于+-。但是小易所生活的世界的表达式规则很简单,从左往右依次计算即可,而且小易所在的世界没有除法,意味着表达式中没有/,只有(+,
- 和 *)。现在给出一个表达式,需要你帮忙计算出小易所在的世界这个表达式的值为多少
输入:
输入为一行字符串,即一个表达式。其中运算符只有-,+,*。参与计算的数字只有0~9.
保证表达式都是合法的,排列规则如样例所示。
输出:
输出一个数,即表达式的值
java代码:
public class StrangeExpression { public static void main(String[] args) { String exp = "3+5*7+2/2" ; char [] exparr = exp.toCharArray(); int result = (int)((exparr[0])-48) ; // System.out.println( result ) ; for(int i = 1 ; i<exparr.length ; i=i+2 ) { switch(exparr[i]) { case \'+\' : result += (int)((exparr[i+1])-48) ; break ; case \'-\' : result -= (int)((exparr[i+1])-48) ; break ; case \'*\' : result *= (int)((exparr[i+1])-48) ; break ; case \'/\' : result /= (int)((exparr[i+1])-48) ; break ; } } System.out.println( result ) ; } }
以上是关于奇怪的表达式求值 (java实现)的主要内容,如果未能解决你的问题,请参考以下文章
Aviator 表达式引擎 轻量级的java语言实现的表达式求值引擎