在Java中将整数转换为字符

时间:2014-01-28 18:54:12

标签: java

我有这个程序,在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>

任何替代解决方案都会非常有用。谢谢!

2 个答案:

答案 0 :(得分:3)

您正在尝试打印C的数值,即2 + 3的情况,并且想要打印5,但在进行(char) 5的演员表时,您会获得控制角色ENQSee ASCII Characters)很可能无法通过控制台进行打印。

如另一个答案所述,试试

Character.forDigit(C, 10)

但这只适用于单个数字的答案。如果需要更多数字,您可能需要使用字符串并尝试

String.valueOf(C)

答案 1 :(得分:2)

Character.forDigit(C, 10)

试试这个,它应该有效。