我正在尝试使用基于字符的堆栈来解决后缀表达式。
我需要将一些负值推入基于char的堆栈,例如'-2'
,但它只存储'-'
部分。
我的确切代码如下所示 -
char val=Character.forDigit(operation(temp),10);
System.out.println("pushed is "+val);
输出为"pushed is - "
请帮助。
答案 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等等......
请注意,由于您使用的是字符,因此只要将每个数字视为单个字符,就无法处理两位数字。然后你必须处理所有"十进制"操作。