⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 function.java

📁 带括号计算器的Java源代码在NetBeans中的实现
💻 JAVA
字号:
/* * To change this template, choose Tools | Templates * and open the template in the editor. */package Calculator;/** * * @author wxyc */class function{String input,output;double num[];char symbol[];int i,j,t,symbolI,numI;public function(String s1){input = s1+"#";num = new double[50];symbol = new char[50];i = 0;j = 0;t=0;numI = 0;symbolI = 0;symbol[0] = '#';num[0] = 0;}public String calculate(){while(i<input.length()){    if(input.charAt(i)=='('){        t++;    }    if(input.charAt(i)==')'){        t--;    }    i++;}if(t!=0){    return "INPUT ERROR!";}i=0;while(i<input.length()){if(!ThisIsSymbol(input.charAt(i))){if((input.charAt(i)<'0'||input.charAt(i)>'9')&&input.charAt(i)!='.')return "INPUT ERROR!";j=i;while(input.charAt(i)>='0'&&input.charAt(i)<='9'||input.charAt(i)=='.'){i++;}numI++;num[numI] = Double.parseDouble(input.substring(j,i));if(j>=2&&input.charAt(j-1)=='-'&&input.charAt(j-2)=='('){num[numI]=-1*num[numI];}}else{if(compareLv(symbol[symbolI],input.charAt(i)) == -1){if(i>=1&&input.charAt(i)=='-'&&input.charAt(i-1)=='('){ i++;}else{    symbolI++;    symbol[symbolI] = input.charAt(i);    i++;}}else if(compareLv(symbol[symbolI],input.charAt(i)) == 0){i++;symbolI--;}else while(compareLv(symbol[symbolI],input.charAt(i)) == 1){if(input.charAt(i)=='-'&&input.charAt(i-1)=='*'){    i++;    num[numI]=-1*num[numI];}else if(input.charAt(i)=='-'&&input.charAt(i-1)=='+'){    i++;    symbol[symbolI]='-';}else if(input.charAt(i)=='-'&&input.charAt(i-1)=='-'){    i++;    symbol[symbolI]='+';}else{num[numI-1] = counter(num[numI-1],symbol[symbolI],num[numI]);numI--;symbolI--;}}}}if(numI==1) num[0] = num[1];return String.valueOf(num[0]);}public int compareLv(char c1,char c2) {int x,y;x = symbolLv(c1);y = symbolLv(c2);if(x==0&&y==0) return 0;if(x==1&&y==4) return 0;else if(y==4) return 1;else if(y==1) return -1;else if(x>y||x==y) return 1;else return -1;}public int symbolLv(char c){switch(c){case '#': return 0;case '(': return 1;case '+': return 2;case '-': return 2;case '*': return 3;case '/': return 3;case ')': return 4;}return 5;}public boolean ThisIsSymbol(char c){if(c =='+'||c=='-'||c =='*'||c =='/'||c =='('||c ==')'||c =='#')return true;return false;}public double counter(double c1,char o,double c2){if(o == '+') return c1+c2;else if(o == '-') return c1-c2;else if(o == '*') return c1*c2;else return c1/c2;}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -