首页 > 代码库 > [java]输入一个算术表达式输出结果
[java]输入一个算术表达式输出结果
动手有益。
输入一个表达式,没有括号,数字小于0-9之间,输出计算结果,所有的中间结果化为整形。
例如: 输入:3+8×2/9-2
输出:2
/** * input a calculate string, calcuate the value * the number between 0-9 * round the middle vlaue to int * */ public static void main(String[] args) { //8*6+2-6/3*6+2 String cal;//=new Scanner(System.in).nextLine(); cal="8*6+2-6/3*6+2"; String[] car=new String[cal.length()]; for (int i = 0; i < car.length; i++) { car[i]=""+cal.charAt(i); } System.err.println(car); //do * and / for (int i = 0; i < car.length; i++) { if(car[i].equals("*")) { car[i+1]= ""+(Integer.parseInt(car[i-1]) * Integer.parseInt(car[i+1])); car[i-1]=""; car[i]=""; }else if(car[i].equals("/")) { car[i+1]= ""+(Integer)(Integer.parseInt(car[i-1]) / Integer.parseInt(car[i+1])); car[i-1]=""; car[i]=""; } else { continue; } } //do + and - int index=0; for (int i = 0; i < car.length; i++) { index=i; if(car[i].equals("+")) { while(car[++index].equals("")){} car[index]= ""+(Integer.parseInt(car[i-1]) + Integer.parseInt(car[index])); car[i-1]=""; car[i]=""; }else if(car[i].equals("-")) { while(car[++index].equals("")){} car[index]= ""+(Integer.parseInt(car[i-1]) - Integer.parseInt(car[index])); car[i-1]=""; car[i]=""; } else { continue; } } System.err.println(cal+" = "+car[car.length-1]); }
[java]输入一个算术表达式输出结果
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。