没有合适的资源?快使用搜索试试~ 我知道了~
java算式计算java算式计算.doc
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 123 浏览量
2022-06-10
11:17:33
上传
评论
收藏 34KB DOC 举报
温馨提示
试读
2页
java算式计算java算式计算
资源推荐
资源详情
资源评论
基本思想是:先从最里面开始计算,找到最后一个“(”和第一个“)”,提取里面的的式子计算并去
其外面一层括号,再把结果以字符串的形式带回被计算的无括号式子的位置,对新式子进行循环上
面的操作,指导最外层。无括号式子有else if 对优先级处理,找到第一个优先级高的计算符,
通过两个函数分别计算计算符前面的数值长度和后面的数值长度,把两个数值字符串转换值,计算
后结果以字符串形式回带到原式子中,循环直到无计算符为止。
import java.util.Scanner;
public class caculate_str {
static Scanner in=new Scanner(System.in);
//式子计算
public static double caculate(String str){
int p1,p2;
p2=str.indexOf(")");
if(p2==-1)p2=str.length();
while(true){
p1=str.substring(0, p2).lastIndexOf("(");
if(p1==-1)break;
str=str.substring(0, p1)+caculat(str.substring(p1+1, p2))
+str.substring(p2+1);
if(p2!=str.length())p2=str.indexOf(")");
if(p2==-1)p2=str.length();
}
return Double.parseDouble(caculat(str));
}
//无括号式子计算
public static String caculat(String str){
int p,l,l2;
double sum=0;
while(str.length()!=num_alenth(str)){
if(str.indexOf("√")!=-1){
p=str.indexOf("√");
l=num_alenth(str.substring(p+1));
sum=Double.parseDouble(str.substring(p+1, p+1+l));
sum=java.lang.Math.sqrt(sum);
str=str.substring(0, p)+sum+str.substring(p+1+l);
}else if(str.indexOf("%")!=-1){
p=str.indexOf("%");
l=num_blenth(str.substring(0,p));
sum=Integer.parseInt(str.substring(p-l, p));
l2=num_alenth(str.substring(p+1));
sum=((int)sum)%Integer.parseInt(str.substring(p+1,
p+1+l2));
str=str.substring(0, p-l)+sum+str.substring(p+1+l2);
}else if(str.indexOf("÷")!=-1){
p=str.indexOf("÷");
l=num_blenth(str.substring(0,p));
sum=Double.parseDouble(str.substring(p-l, p));
l2=num_alenth(str.substring(p+1));
sum/=Double.parseDouble(str.substring(p+1, p+1+l2));
str=str.substring(0, p-l)+sum+str.substring(p+1+l2);
}else if(str.indexOf("×")!=-1){
p=str.indexOf("×");
l=num_blenth(str.substring(0,p));
sum=Double.parseDouble(str.substring(p-l, p));
资源评论
oligaga
- 粉丝: 52
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功