高手们给解决一下下
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;
pstr+=ch1;
pstr+=ch1;
pstr+=ch1;
Integer nub=new Integer(c.value(pstr));
int nub1=nub.intValue();
if(nub1==24)//出错的地方:数字到字符的转换异常!
System.out.println(ch1+ch1+ch1+ch1);
else
System.out.println( "这样的表达式不存在!");
}
}
}
程序的意思很明显的。请高手指点一下下啊。 import ds_java.Stack2;//这是一个堆栈,由于太多在这里就没有具体发上。
public class Chen
{
String pstr1;
public Chen()
{
}
int value(String ps)//求表达式的值的方法
{
pstr1=ps; ...
guaiguaihu2009 发表于 2009-3-21 16:04 http://www.jsjbbs.cn/images/common/back.gif
数据结构啊!
刚学啊,帮不到什么忙啊! 我们还没有学到这里,暂时帮不到什么忙呀,不好意思呀!:) import ds_java.Stack2;//这是一个堆栈,由于太多在这里就没有具体发上。
分号是中文的,应该转成英文的
z=z*10+Integer.parseInt(ch+" ");
类型 Integer 中的方法 parseInt(String, int)对于参数(char, int)不适用 Integer nub=new Integer(c.value(pstr));
value的值应该是int类型的 这个是JAVA吗? 不知道是什么! 我也想知道 4个太阳的都不会啊 4个太阳的都不会啊
ldd2133 发表于 2009-4-23 17:55 http://www.jsjbbs.cn/images/common/back.gif不是已经弄给他了?!!!
页:
[1]