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

📄 seeking_expressions.java

📁 自已编的算24点的小游戏,原码和图片都已附上
💻 JAVA
字号:

public class Seeking_expressions {
	private char []charArrays;
	private int get_data_pace(){
		int space_data=0;
		for(int i=0;i<charArrays.length;i++)
		{
			if(Character.isDigit(charArrays[i]))
				space_data++;
		}
		return space_data;
	}
	private int get_sign_pace(){
		int space_sign=0;
		for(int i=0;i<charArrays.length;i++)
		{
			if(!Character.isDigit(charArrays[i]))
				space_sign++;
		}
		return space_sign;
	}
	private int priority(char operation)
	{
		if(operation=='*' || operation=='/')return(2);
		   else if(operation=='+' || operation=='-')return(1);
		   else if(operation=='(' || operation==')')return(0);
		   else return(-1);
	}
	public int express_value(String express)
	{
		int value,result,i,j,k;
		boolean judge;
		char baschar;
		charArrays=new char[express.length()];
		express.getChars(0, express.length(), charArrays, 0);
        int oper_data[]=new int[get_data_pace()];
		char oper_sign[]=new char[get_sign_pace()];
		oper_data[0]=0;
		oper_sign[0]='=';
		i=0;j=0;k=0;
		baschar=charArrays[0];
		for(;;)
		{
			value=0;
			judge=false;
			while(Character.isDigit(baschar))
			{
				value=value*10+(baschar-48);
				baschar=charArrays[++i];
				judge=true;
			}
			if(judge==true)
				oper_data[++j]=value;
			if(!Character.isDigit(baschar))
			{
				if(priority(baschar)>priority(oper_sign[k]) || baschar=='(')
				{
					oper_sign[++k]=baschar;
					baschar=charArrays[++i];
				}
				else if(priority(baschar)<=priority(oper_sign[k]))
				{
					if(baschar==')' && oper_sign[k]=='(')
					{
						oper_sign[k--]='\0';
						baschar=charArrays[++i];
					}
					else if(baschar=='=' && oper_sign[k]=='=')
					{
						result=oper_data[j];
						oper_data[j--]=0;
						oper_sign[k++]='\0';
						return(result);
					}
					else
					{
						if(oper_sign[k]=='*')
						   oper_data[j-1]=oper_data[j-1]*oper_data[j];
						else if(oper_sign[k]=='/')
						   oper_data[j-1]=oper_data[j-1]/oper_data[j];
						else if(oper_sign[k]=='+')
						   oper_data[j-1]=oper_data[j-1]+oper_data[j];
						else if(oper_sign[k]=='-')
						   oper_data[j-1]=oper_data[j-1]-oper_data[j];
						oper_data[j--]=0;
						oper_sign[k--]='\0';
					}
				}
			}
		}
		
	}

}

⌨️ 快捷键说明

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