zoukankan      html  css  js  c++  java
  • 处理字符集中的算式问题

    最近遇到一个编程题.题目是这样的:
      接收一个字符型的算式,如"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 }
  • 相关阅读:
    mybatis连接MySQL8.0出现的问题
    zqsb项目中发现没有getMSSVideoList
    idea快速实现接口的方法
    鸟枪换炮---IDEA
    IDEA的使用---常用的快捷键
    MQ消息队列
    token的主要用法?
    oracle中游标的使用
    乐观锁和悲观锁
    分布式系统的事务控制
  • 原文地址:https://www.cnblogs.com/MyOceansWeb/p/5989948.html
Copyright © 2011-2022 走看看