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);
}
}
阿旭_
相关分类