?int multiplyIndex = str.indexOf("x");? ? ? int divideIndex = str.indexOf("÷");? ? ? int firstOperationIndex = -1;? ? ? if (multiplyIndex == -1) firstOperationIndex = divideIndex;? ? ? if (divideIndex == -1) firstOperationIndex = multiplyIndex;? ? ? if (firstOperationIndex == -1) firstOperationIndex = Math.min(multiplyIndex, divideIndex);? ? ? String operation = str.substring(firstOperationIndex, firstOperationIndex+1);? ? ? String leftE = str.substring(0, firstOperationIndex-1);? ? ? String rightE = str.substring(firstOperationIndex+2);其中,str是例如“1+2+3x4+7”之類的字符串
1 回答
已采納

習慣受傷
TA貢獻885條經驗 獲得超1144個贊
//舉例:str?=?1+2+3x4+7 //從字符串中查找“x”符號位置 //例子解析:x的位置為:5,所以?multiplyIndex=5 int?multiplyIndex?=?str.indexOf("x"); //從字符串中查找“÷”符號位置 //例子解析:str中沒有÷符號,所以?divideIndex=-1 int?divideIndex?=?str.indexOf("÷"); //待計算的第一個操作索引 int?firstOperationIndex?=?-1; //如果沒有找到乘法符號索引,那么第一個操作索引就賦值為除法符號索引 //例子解析:multiplyIndex?!=?-1,所以這句不執行 if?(multiplyIndex?==?-1)? firstOperationIndex?=?divideIndex; //如果沒有找到除法符號索引,那么第一個操作索引就賦值為乘法符號索引 //例子解析:divideIndex?==?-1,所以?firstOperationIndex?=?5 if?(divideIndex?==?-1)? firstOperationIndex?=?multiplyIndex; //如果既沒有找到乘法符號也沒有找到除法符號索引,那么判斷它們之間最小的索引值。 //例子解析:firstOperationIndex?!=?-1,所以這句不執行 if?(firstOperationIndex?==?-1)? firstOperationIndex?=?Math.min(multiplyIndex,?divideIndex); //查找計算符號 //例子解析:執行這句之后,operation="x" String?operation?=?str.substring(firstOperationIndex,?firstOperationIndex+1); //取操作符號左側字符串 String?leftE?=?str.substring(0,?firstOperationIndex-1); //取操作符號右側字符串 String?rightE?=?str.substring(firstOperationIndex+2);
添加回答
舉報
0/150
提交
取消