处理字符集中的算式问题

处理字符集中的算式问题

最近遇到一个编程题.题目是这样的:
  接收一个字符型的算式,如"1+2*3+4",按顺序,每遇到一个数字,则进行运算至该数字的结果.比如传入的是"1+2*3+4",那么结果是1,3,7,11.

  有的地方表达可能不一样,我的理解记下来的题目就是这样.回来后写了下,用java语言处理的.

 1 package com.bhy.epay;
 2 
 3 import javax.script.ScriptEngine;
 4 import javax.script.ScriptEngineManager;
 5 import javax.script.ScriptException;
 6 
 7 public class testString {
 8     static ScriptEngine jse = new ScriptEngineManager().getEngineByName("JavaScript");  
 9 
10     public static void main(String[] args) throws ScriptException {
11         String str = "1+2*3+4";
12         char[] arr=str.trim().toCharArray();
13         Object sum = 0;
14         if(str != null && !"".equals(str)){
15             for(int i=0;i<str.length();i++){
16                 if(!Character.isDigit(arr[i])){    // 如果不是数字
17                     String strAfter = str.substring(0, i);
18                     sum = jse.eval(strAfter);
19                     System.out.println(sum);
20                 }
21                 if(i == str.length()-1){  // 处理最后一位数字
22                     System.out.println(jse.eval(str));
23                 }
24             }
25         }
26         }
27 
28 }

 

posted @ 2016-10-23 14:13 BigOcean 阅读( ...) 评论( ...) 编辑 收藏
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值