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

📄 expressionlist.java

📁 使用JAVA语言实现的四则运算(加,减,乘,除运算)
💻 JAVA
字号:
import java.io.*;
import java.lang.*;


public class ExpressionList
{
	private StackList theStack;
	
	public ExpressionList()
	{
		theStack=null;
	}
	public ExpressionList(String ex)
	{
		
		StackList stc = new StackList();
		
		String postfix=" ";
		
		
		for(int i=0;i<ex.length();i++)
		{
			if((ex.charAt(i)!='+')&&(ex.charAt(i)!='-')&&(ex.charAt(i)!='*')&&
			  (ex.charAt(i)!='/')&&(ex.charAt(i)!='(')&&(ex.charAt(i)!=')'))
			{
				
				postfix=postfix+ex.substring(i,i+1);
			}
			
			else
			{
				
				  postfix=postfix+" ";
				
				
				
				
				if (stc.isEmpty())
				{
					stc.push(ex.substring(i,i+1));
				}
				else if (  ex.charAt(i)=='(' )
				{
					stc.push(ex.substring(i,i+1));
				}
				else if (ex.charAt(i)==')')
				{
					while(!stc.top().equals("("))
					{
						postfix=postfix.trim()+" ";
						postfix=postfix+stc.topAndPop(); 
						
					}
					stc.pop();
				}
				else if (ex.charAt(i)=='*' || ex.charAt(i)=='/')
				{
					if(stc.top().equals("*") || stc.top().equals("/"))
					{
						postfix=postfix.trim()+" ";
						postfix=postfix+stc.topAndPop(); 
					}
					stc.push(ex.substring(i,i+1));
				}
			    else if(ex.charAt(i)=='+' || ex.charAt(i)=='-')
				{
					while( (!stc.top().equals("(")) && ( !stc.isEmpty() ) )
					{
						postfix=postfix.trim()+" ";
						postfix=postfix+stc.topAndPop(); 
						
					}
					stc.push(ex.substring(i,i+1));
				}
				else
				{
					System.out.println("Sorry");
				}
				
				postfix=postfix.trim()+" ";
				
			}
			
		}
	
		while(!stc.isEmpty())
		{
			postfix=postfix.trim()+" ";
			postfix=postfix+stc.topAndPop(); 
			
		}
		
		postfix=postfix.trim();
		System.out.println(postfix);
		
		
		
		//开始计算
		String[] cal=postfix.split("\\s");
		for (int i=0; i<cal.length; i++)
         System.out.println(cal[i]);

         boolean done=false;
		 while(!cal[1].equals("#"))
		 {  
		 
		 
		   done=false;
		   double m=0;
		   double n=0;
		   int j=0;
		   for(int i=0;i<cal.length;i++)
		   {
			    if(cal[i].equals("*")||cal[i].equals("/")||cal[i].equals("+")
			    ||cal[i].equals("-"))
			    {
				       
				        m=Double.parseDouble(cal[i-2]);
				        n=Double.parseDouble(cal[i-1]);
			           if(cal[i].equals("*"))
			   
			   	         m=m*n;
			   
			           else if(cal[i].equals("/"))
			   
			   	         m=m/n;
			   
			           else if(cal[i].equals("+"))
			     
			             m=m+n;
			     
			           else
			             m=m-n;
			     
			     
			           cal[i-2]=Double.toString(m);
			           if((i+1)==cal.length){ cal[1]="#";break;}
			           cal[i-1]=cal[i+1];
			           for( j=i;j<cal.length-2;j++)
			           cal[j]=cal[j+2];
			           cal[j]="#";cal[j+1]="#";
			  
			           done=true;
			      }
			
			     if(done)break;
		
		    }
		 }
		 System.out.println("The expression "+ex+"="+cal[0]);
		
		 
         
		
	}
}

⌨️ 快捷键说明

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