Java里面是先算乘除后算加减_java.怎么实现字串符的先乘除后加减阿

java.怎么实现字串符的先乘除后加减阿

关注:91  答案:3  信息版本:手机版 电脑版

解决时间 2021-01-18 00:22

提问者壹玍徴戰何亽陪

2021-01-17 10:00

public class test {

public static void main(String[] args) {

// TODO Auto-generated method stub

String str ="1+2*6/3";

String[] nums =str.split("[-+*/]{1,}");

String[] opts = str.split("[^-+*/]{1,}");

double[] dbls = strToDouble(nums);

double ans = calculate(dbls,opts);

System.out.println("Ans is "+ ans);

}

static double calculate(double[] dbls, String[] opts){

double ans = dbls[0];

for( int i=1; i < dbls.length;i++ ){

String opt = (dbls.length==opts.length ?opts[i] : opts[i-1]);

if ( opt.equals("*")) ans *= dbls[i];

else if ( opt.equals("/")) ans /= dbls[i];

else if ( opt.equals("+")) ans += dbls[i];

else if ( opt.equals("-")) ans -= dbls[i];

}

return ans;

}

static double[] strToDouble(String[] strs){

double[] result = new double[strs.length];

for(int i= 0; i

try {result[i] = Double.parseDouble(strs[i]);}

catch (Exception ex) {}

return result;

}

}

这个是部分代码。怎么改动才能让它变得可以实现先乘除后加减呢。谢谢了

麻烦写出详细代码。急啊。

最佳答案

二级知识专家娇而不傲的猫

2021-01-17 10:38

堆栈\逆波兰

用堆栈实现,速度快;逆波兰,可以减少输入输出的烦琐处理。

详细代码……,不好意思,我也在做。不过你可以找到逆波兰的资料看看

全部回答

1楼此生不换的執著

2021-01-17 13:42

加些()这东西试试看

2楼尝一口甜筒

2021-01-17 12:04

自己写个类

我要举报

如以上信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!

推荐资讯

大家都在看

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值