奇怪的表达式求值 (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实现)的主要内容,如果未能解决你的问题,请参考以下文章

网易2017春招笔试真题编程题集合——奇怪的表达式求值

java实现算术表达式求值

Aviator 表达式引擎 轻量级的java语言实现的表达式求值引擎

IntelliJ:求值lambda表达式在调试时引发编译错误

C语言编一个实现简单的算术表达式求值的代码。

java实现表达式求值 (20 分)-------非递归版