📄 seeking_expressions.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 + -