如何将负整数值转换为char数据类型

时间:2016-02-13 18:58:41

标签: java char stack

我正在尝试使用基于字符的堆栈来解决后缀表达式。
我需要将一些负值推入基于char的堆栈,例如'-2',但它只存储'-'部分。
我的确切代码如下所示 -

             char val=Character.forDigit(operation(temp),10);
             System.out.println("pushed is "+val);


输出为"pushed is - "
请帮助。

2 个答案:

答案 0 :(得分:1)

字符类是单数。在一个字符中,一个数字,所以它只获得第一个'-2'。

请参阅此内容以获得更全面的解释:Difference between "char" and "String" in Java

答案 1 :(得分:1)

char表示它包含来自任何特定语言的受支持字符的 1 字符。 -2不是1个字符,而是string,因为它由字符序列组成,例如'-''1'。所以你的代码正在做的是做正确的事情。

现在,鉴于您确实需要字符来存储您的数字,那么您必须将负值映射到其他一些字符。来自0..9的数字实际上是ascci # 48..57。所以你可以做的是从ascci表中连续10个字符并将它们视为-ve。让我们说你选择...我作为你的-ve数字然后a = -1,b = -2等等......

请注意,由于您使用的是字符,因此只要将每个数字视为单个字符,就无法处理两位数字。然后你必须处理所有"十进制"操作。