欢迎来到天天文库
浏览记录
ID:38525762
大小:50.50 KB
页数:6页
时间:2019-06-14
《简单的JAVA四则运算》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、packagearrays.myArray;importjava.util.Scanner;publicclassSortObject{privatestaticintintercePosition=0;//记录单个运算数据的长度privatestaticint[]intercePositionIndex=null;//记录“(”的下标privatestaticint[]intercePositionEnd=null;//记录“)”的下标publicstaticvoidmain(String[]args){
2、Scannerinput=newScanner(System.in);do{System.out.println("请输入你要计算的字符串(注意:只能输入数字和加,减,乘除符号;输入完毕后,请直接回车):");StringnumberString=input.next().trim();//判断输入的运算字符串是否符合规定if(ispassString(numberString)==false){System.out.println("您输入的计算字符串有误,请正确输入!");}else{//计算结果返回S
3、ystem.out.println(interceResult(numberString));}}while(true);}//判断是否有带括号的运算字符串存在privatestaticStringinterceResult(Stringstr){Stringresult=str;char[]numberString=str.toCharArray();//1+2+(1*2+1-1*2+5)+2+(1+5+9+10-11)+1*5/2+3//1+8-9+(1*8/2-5+(1+2+8))+4/5*8/3*2
4、intIndexStart=0;//记录“(”的实际数量intEndStart=0;//记录“)”的实际数量for(inti=0;i5、tart);//截取括号的运算字符串进行运算,生成新的运算字符串result=str.substring(0,IndexStart)+interceptOperation(result,'*','/')+str.substring(EndStart+1,str.length());//回调执行,其它小括号的运算字符串returninterceResult(result);}if(i==numberString.length-1)if(EndStart==0)break;}//不存在括号了,再进行混合运算re6、sult=interceptOperation(str,'*','/');returnresult;}//不带括号的四则运算privatestaticStringinterceptOperation(StringoperationNumber,chara,charb){Stringmess=operationNumber;char[]stringOperation=mess.toCharArray();//循环遍历运算字符串,并做相应的运算for(inti=0;i7、h;i++){//判断运算符所在的索引if(stringOperation[i]==a8、9、stringOperation[i]==b){if(i!=0){//运算符前的第一个数doublenum1=interceptNumIndex(mess.substring(0,i));//记录第一个数据的长度intfrontPosition=intercePosition;//运算符前的第二个数doublenum2=interceptNumEnd(mess.substring(i+1,stringOperation.10、length));//记录第二个数据的长度intbackPosition=intercePosition;//算完乘除,将结果替换到原来运算的位置,得到新的运算字符串StringIndexMess=mess.substring(0,i-frontPosition+1);StringIndexResult="";//判断是否运算到最后的结果了if(IndexMess.indexOf('+')==-1&&IndexM
5、tart);//截取括号的运算字符串进行运算,生成新的运算字符串result=str.substring(0,IndexStart)+interceptOperation(result,'*','/')+str.substring(EndStart+1,str.length());//回调执行,其它小括号的运算字符串returninterceResult(result);}if(i==numberString.length-1)if(EndStart==0)break;}//不存在括号了,再进行混合运算re
6、sult=interceptOperation(str,'*','/');returnresult;}//不带括号的四则运算privatestaticStringinterceptOperation(StringoperationNumber,chara,charb){Stringmess=operationNumber;char[]stringOperation=mess.toCharArray();//循环遍历运算字符串,并做相应的运算for(inti=0;i7、h;i++){//判断运算符所在的索引if(stringOperation[i]==a8、9、stringOperation[i]==b){if(i!=0){//运算符前的第一个数doublenum1=interceptNumIndex(mess.substring(0,i));//记录第一个数据的长度intfrontPosition=intercePosition;//运算符前的第二个数doublenum2=interceptNumEnd(mess.substring(i+1,stringOperation.10、length));//记录第二个数据的长度intbackPosition=intercePosition;//算完乘除,将结果替换到原来运算的位置,得到新的运算字符串StringIndexMess=mess.substring(0,i-frontPosition+1);StringIndexResult="";//判断是否运算到最后的结果了if(IndexMess.indexOf('+')==-1&&IndexM
7、h;i++){//判断运算符所在的索引if(stringOperation[i]==a
8、
9、stringOperation[i]==b){if(i!=0){//运算符前的第一个数doublenum1=interceptNumIndex(mess.substring(0,i));//记录第一个数据的长度intfrontPosition=intercePosition;//运算符前的第二个数doublenum2=interceptNumEnd(mess.substring(i+1,stringOperation.
10、length));//记录第二个数据的长度intbackPosition=intercePosition;//算完乘除,将结果替换到原来运算的位置,得到新的运算字符串StringIndexMess=mess.substring(0,i-frontPosition+1);StringIndexResult="";//判断是否运算到最后的结果了if(IndexMess.indexOf('+')==-1&&IndexM
此文档下载收益归作者所有