package arrays.myArray; import java.util.Scanner; public class SortObject { private static int intercePosition = 0; // 记录单个运算数据的长度 private static int[] intercePositionIndex = null; // 记录“(”的下标 private static int[] intercePositionEnd = null; // 记录“)”的下标 public static void main(String[] args) { Scanner input = new Scanner(System.in); do { System.out.println("请输入你要计算的字符串(注意:只能输入数字和加,减,乘除符号;输入完毕后,请直接回车):"); String numberString = input.next().trim(); // 判断输入的运算字符串是否符合规定 if (ispassString(numberString) == false) { System.out.println("您输入的计算字符串有误,请正确输入!"); } else { // 计算结果返回 System.out.println(interceResult(numberString)); } } while (true); } // 判断是否有带括号的运算字符串存在 private static String interceResult(String str) { String result = 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 int IndexStart = 0; // 记录“(”的实际数量 int EndStart = 0; // 记录“)”的实际数量 for (int i = 0; i < numberString.length; i++) { if ('(' == numberString[i]) { // 记录最后一个正括号的位置 IndexStart = i; } if (')' == numberString[i]) { // 记录反括号的最初始下标的位置 EndStart = i; // 截取最里面一个括号里的运算字符串 result = result.substring(IndexStart + 1, EndStart); // 截取括号的运算字符串进行运算,生成新的运算字符串 result = str.substring(0, IndexStart) + interceptOperation(result, '*', '/') + str.substring(EndStart + 1, str.length()); // 回调执行,其它小括号的运算字符串 return interceResult(result); } if (i == numberString.length - 1) if (EndStart == 0) break; } // 不存在括号了,再进行混合运算 result = interceptOperation(str, '*', '/'); return result; } // 不带括号的四则运算 private static String interceptOperation...