我有这个程序,在Switch语句结构中,我计算了一个表达式,并希望将其结果传递给堆栈(我在Chars中实现)。现在的问题是我用过
char c;
int C = 0;
switch(op)
{
case '+':
{
C = B + A;
c = (char) C;
push(c);
break;
}
case '-':
{
C = B - A;
c = (char) C;
push(c);
break;
}
case '*':
{
C = B * A;
c = (char) C;
push(c);
break;
}
case '/':
{
C = B / A;
c = (char) C;
push(c);
break;
}
}
现在如果我打印C(这是整数),它会工作得很好,但是如果我打印c(这是char)或者我把它推到堆栈,无论如何,它只会显示为空。我还使用了System.out.println(C)并发现计算(C = B + A等)工作正常但转换为char(c =(char)C)不会转换该值。 / p>
任何替代解决方案都会非常有用。谢谢!
答案 0 :(得分:3)
您正在尝试打印C
的数值,即2 + 3
的情况,并且想要打印5
,但在进行(char) 5
的演员表时,您会获得控制角色ENQ
(See ASCII Characters)很可能无法通过控制台进行打印。
如另一个答案所述,试试
Character.forDigit(C, 10)
但这只适用于单个数字的答案。如果需要更多数字,您可能需要使用字符串并尝试
String.valueOf(C)
答案 1 :(得分:2)
Character.forDigit(C, 10)
试试这个,它应该有效。