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

📄 zjmain.java

📁 输入一个表达式
💻 JAVA
字号:
import java.io.*;
public class ZJMain {
    
	char []strt ;
	private static int max=100;
    private static  char []ex = new char [max];
    private static  char [][]sy = new char [max][max]; 
	char []str=new char [max];
	char []stack=new char [max];
	public ZJMain(String str) {
		char []str1 = str.toCharArray();
		strt = str1;
		for(int i = 0; i< str1.length; i++) {
			this.str[i] = str1[i];
		}
		
	}
	String getResult() {
		String sb = new String(ex);
			
		return sb;		
	}
	public  void trans() throws IOException
	{

		char ch;
		int sum,j,t,k=0,top=0;//
		int i=0;                   //计数器
	
		sum=i;	                       //数组长度,即表达式长度
		t=1;
		i=0;
		ch=str[i];
		i++;
		while(ch!='#'&& i <= strt.length)
		{
			switch(ch)                                  //比较算符优先级
			{ 
				case '(':	top++;	
							stack[top]=ch;
							break;
				case ')':	while(stack[top]!='(')
							{ 
								ex[t]=stack[top];      //出栈
								top--;
								t++;
							}
							top--;
							break;
				case '+':
				case '-':	while(top!=0&&stack[top]!='(')
							{ 
								ex[t]=stack[top];
								top--;
								t++;
							}
							top++;
							stack[top]=ch;
							break;
				case '*':
				case '/':	while(stack[top]=='*'||stack[top]=='/')
							{
								ex[t]=stack[top];
								top--;
								t++;
							}
							top++;
							stack[top]=ch;break;
				case ' ':	break;
				default:    while(ch>='0'&&ch<='z')
							{
								ex[t]=ch;
								t++;
								ch=str[i];
								i++;
							}
							i--;
							ex[t]=' ';
							t++;
			}
			ch=str[i];
			i++;
		}
		while(top!=0)
			if(stack[top]!='(')
			{ 
				ex[t]=stack[top];
				t++;
				top--;
			}   
			else 
			{
				System.out.println("error");
				top--;
				System.exit(0);
			}
		ex[t]='#';
		for(j=1;j<t;j++)
		{
			if(ex[j]<'0'&&ex[j]>'z')
			{
				k++;
				sy[k][1]=ex[j];
			}
		}
		System.out.println("\n原表达式是:");
		for(j=1;j<sum;j++)
			System.out.print(str[j]);
		System.out.println("\n逆波兰式是:");
		for(j=1;j<t;j++)
			System.out.print(ex[j]);
	//	System.out.println("\n三元式是:");
		//for(k=0;k<t;k++)
		//	for()
	}
	/*
	public static void main(String[] args) throws IOException {
		ZJMain z = new ZJMain("5+7*9+15");
		z.trans();
		

	}
*/
}

⌨️ 快捷键说明

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