为了账号安全,请及时绑定邮箱和手机立即绑定

代码如何写才可以求出答案

代码如何写才可以求出答案

慕粉3735368 2016-07-28 17:50:59
package demo_0100;public class Test { /* * ((((2+3)/5)*2)-2) * * * ((2+3)/(5*2)-2) */ public static void main(String[] args) { String str="((((2+3)/5)*2)-2)"; /* *  * ((((2+3) *  * (((5/5)*2)-2) */ System.out.println("length:"+str.length()); int left=0; for(int i=0; i<str.length(); i++){ String temp=str.substring(i, i+1); if(temp.equals(")")){ //找到第一个 )括号 String str2=str.substring(0, i); //找到最后一个左括号 int lastLeftIndex=str2.lastIndexOf("("); //截取最内层口号(2+3)的字符串 String numStr=str2.substring(lastLeftIndex+1); //定义存储计算结果的变量 int numSum=0; //===============================计算================================ for(int j=0; j<numStr.length(); j++){ //-------------------------------------------------------------- String str3=numStr.substring(j, j+1); if(str3.equals("+")){ int leftNum=Integer.parseInt(numStr.substring(0, j)); int rightNum=Integer.parseInt(numStr.substring(j+1)); numSum=leftNum+rightNum; break; }else if(str3.equals("-")){ }else if(str3.equals("*")){ }else if(str3.equals("/")){ } //-------------------------------------------------- } //===========================使用计算的结果替换截取的字符串======================================= str=str.replace("("+numStr+")", numSum+""); System.out.println("替换之后:"+str); } } System.out.println("left:"+left); }}
查看完整描述

1 回答

已采纳
?
阿旭_

TA贡献217条经验 获得超353个赞

import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;

public class test {
	public static void main(String[] args) throws Exception {
		String[] value_arr = new String[] { "((((2+3)/5)*2)-2)", "((2+3)/(5*2)-2)" };
		for (int i = 0; i < value_arr.length; i++) {
			ScriptEngine jse = new ScriptEngineManager().getEngineByName("JavaScript");
			System.out.println(value_arr[i] + "=" + jse.eval(value_arr[i]));
		}
	}

}

//img1.sycdn.imooc.com//5799dab50001683c04120130.jpg

查看完整回答
2 反对 回复 2016-07-28
  • 1 回答
  • 1 关注
  • 1395 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信