首页 > 代码库 > JAVA实现简单四则混合运算
JAVA实现简单四则混合运算
JAVA实现简单四则混合运算,说明:该计算器支持实则混合运算,如 2*(3+1 )/ 4-3 *9+ 8/ 3*4- 5,则输出:-19.333332 需要说明的事括号必须是英文的。源码如下仅供学习:
运行后直接在Console里面敲然后回车即可
[1].[代码] [Java]代码 跳至 [1]
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 | import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; public class Test_03 { public static void main(String[] args){ // String str=" 11 12 13 56 "; // String[] data=http://www.mamicode.com/str.split("//s"); // for(int i=0;i<data.length;i++){ // System.out.println(data[i]); // } BufferedReader reader= null ; InputStreamReader inputStreamReader= null ; // ArrayList<String>opt=new ArrayList<String>(); try { System.out.println( "请输入表达式:或直接输入#结束运算!" ); inputStreamReader= new InputStreamReader(System.in); reader= new BufferedReader(inputStreamReader); String str=reader.readLine(); while (!str.equals( "#" )){ System.out.println( "运算结果为:" +opt(str)+ "" ); System.out.println( "请输入表达式:或直接输入#结束运算!" ); str=reader.readLine(); } } catch (Exception e){ e.printStackTrace(); } if (reader!= null ){ try { reader.close(); } catch (IOException e) { e.printStackTrace(); } } } public static float opt(String s) throws Exception{ if (s == null || "" .equals(s.trim())) { return 0f; } int a1=s.indexOf( "+" ); int a2=s.indexOf( "-" ); int a3=s.indexOf( "*" ); int a4=s.indexOf( "/" ); int a5=s.indexOf( "(" ); if (a1==- 1 &&a2==- 1 &&a3==- 1 &&a4==- 1 ){ if (s.trim()== null || "" .equals(s.trim())){ throw new Exception( "operate error" ); } return Float.parseFloat(s.trim()); } if (a5!=- 1 ){ int a6=s.indexOf( ")" ); if (a6==- 1 ){ throw new Exception( "括号不匹配" ); } else { float f=opt(s.substring(a5+ 1 ,a6).trim()); s=s.replace(s.substring(a5,a6+ 1 ), String.valueOf(f)); return opt(s); } } if (a1!=- 1 ){ return opt(s.substring( 0 ,a1))+opt(s.substring(a1+ 1 ,s.length())); } if (a2!=- 1 ){ return opt(s.substring( 0 ,a2))-opt(s.substring(a2+ 1 ,s.length())); } if (a3!=- 1 ){ return opt(s.substring( 0 ,a3))*opt(s.substring(a3+ 1 ,s.length())); } if (a4!=- 1 ){ return opt(s.substring( 0 ,a4))/opt(s.substring(a4+ 1 ,s.length())); } return Integer.parseInt(s.trim()); } } |
JAVA实现简单四则混合运算
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。