| import ds_java.Stack2;//这是一个堆栈,由于太多在这里就没有具体发上。public class Chen
 {
 String pstr1;
 public Chen()
 {
 }
 int value(String ps)//求表达式的值的方法
 {
 pstr1=ps;
 Stack2 s2=new Stack2();
 char ch;
 int i=0,x,y,z=0;
 while(i<pstr1.length())
 {
 ch=pstr1.charAt(i);
 if(ch>='0'&&ch<='9')
 {
 z=0;
 while(ch!=' ')
 {
 z=z*10+Integer.parseInt(ch+" ");
 i++;
 ch=pstr1.charAt(i);
 }
 s2.push(z);
 }
 else
 {
 y=s2.pop();
 x=s2.pop();
 switch(ch)
 {
 case '+': z=x+y;break;
 case '-': z=x-y;break;
 case '*': z=x*y;break;
 case '/': z=x/y;break;
 }
 s2.push(z);
 }
 
 }
 return(s2.pop());
 }
 
 public static void main(String[] args)
 {
 Chen c=new Chen();
 String pstr="25779";
 char[] ch1={'+','-','*','/'};
 for(int i=0;i<4;i++)
 for(int j=0;j<4;j++)
 for(int m=0;m<4;m++)
 for(int n=0;n<4;n++)
 {
 pstr+=ch1[i];
 pstr+=ch1[j];
 pstr+=ch1[m];
 pstr+=ch1[n];
 Integer nub=new Integer(c.value(pstr));
 int nub1=nub.intValue();
 
 if(nub1==24)//出错的地方:数字到字符的转换异常!
 System.out.println(ch1[i]+ch1[j]+ch1[m]+ch1[n]);
 else
 System.out.println( "这样的表达式不存在!");
 
 }
 
 }
 }
 程序的意思很明显的。请高手指点一下下啊。
 |