Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package TEST;
- import java.io.IOException;
- import java.util.Scanner;
- /**
- * Created by Dheshan M (@D-codex) on 11/22/2015.
- */
- public class ExperimentalCalc {
- public static String removePoint(String in){
- int l=in.length();
- char ch,ch1;
- for(int i=l-1;i>0;i--){
- ch=in.charAt(i);
- ch1=in.charAt(i-1);
- if((ch=='0')&&(ch1=='.')){
- in=in.substring(0,i-1);
- break;
- }
- }
- return(in);
- }
- public static double CalculatorMain (String input){
- String buffer;
- double numbuffer;
- int u=0;
- char buf;
- input=input.trim();
- int l=input.length();
- String buffRecursive;
- double num[]=new double[25];
- char func[]=new char[25];
- for(int i=0;i<l;i++){
- char chk=input.charAt(i);
- if(!Character.isDigit(chk)){
- if(chk=='('){
- for(int j=i+1;i<l;j++){
- char chk0=input.charAt(j);
- if (chk0==')'){
- buffRecursive=input.substring(i+1,j);
- num[u] =CalculatorMain(buffRecursive);
- func[u]=input.charAt(j+1);
- input=input.substring(j+2);
- u = u + 1;
- l = input.length();
- i = 0;
- break;
- }
- }
- }
- else if(chk!='.') {
- buffer = input.substring(0, i);
- numbuffer = Double.parseDouble(buffer);
- num[u] = numbuffer;
- buf = input.charAt(i);
- func[u] = buf;
- input = input.substring(i + 1);
- u = u + 1;
- l = input.length();
- i = 0;
- }
- }
- }
- numbuffer=Double.parseDouble(input);
- num[u]=numbuffer;
- for(int i=0;i<=u;i++){
- switch(func[i]){
- case '+':
- num[i+1]=num[i]+num[i+1];
- break;
- case '*':
- num[i+1]=num[i]*num[i+1];
- break;
- case '/':
- num[i+1]=num[i]/num[i+1];
- break;
- case '-':
- num[i+1]=num[i]-num[i+1];
- break;
- }
- }
- double ans=num[u];
- String output=String.valueOf(ans);
- output=removePoint(output);
- return(ans);
- }
- public static void main(String Args[])throws IOException {
- Scanner in=new Scanner(System.in);
- String input,output;
- double out;
- System.out.println("Enter you Mathematical Statement \n" +
- "[Don't Forget to type the proper Mathematical Symbols]\n" +
- "Enter the Equation :");
- input=in.nextLine();
- out=CalculatorMain(input);
- output=removePoint(String.valueOf(out));
- System.out.println("RESULT :"+output);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement