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

Java 如何将负整数值转换为char数据类型,java,char,stack,Java,Char,Stack,我正在尝试使用基于字符的堆栈解决后缀表达式我需要将一些负值放入基于字符的堆栈中,例如'-2',但它只存储'-'部分。我的确切代码如下- char val=Character.forDigit(operation(temp),10); System.out.println("pushed is "+val); 输出是“push是-”请帮忙。字符类是单数。就像一个字符,一个数字,所以它只得到'-2'中的第一个 请参阅以下内容以获得更全面的解释:字

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

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


输出是
“push是-”

请帮忙。

字符类是单数。就像一个字符,一个数字,所以它只得到'-2'中的第一个


请参阅以下内容以获得更全面的解释:

字符类是单数的。就像一个字符,一个数字,所以它只得到'-2'中的第一个


有关更全面的解释,请参见此部分:

char
表示它由任何特定语言中受支持字符的1字符组成<代码>-2不是一个字符,它是一个
字符串
,因为它由字符序列组成,例如
'-'
'1'
。因此,您的代码所做的就是做正确的事情

现在,假设您确实需要字符来存储数字,那么您必须将负值映射到其他字符。
0..9
中的数字实际上是
48..57
。因此,您可以从ascci表中选取10个连续字符,并将它们视为-ve。假设你选了一个。。我是你的-ve数,然后a=-1,b=-2,依此类推


请记住,因为您使用的是字符,所以您不能处理两位数的数字,只要您将每个数字视为单个字符。然后你必须处理所有的“十进制”运算

char
表示它由任何特定语言支持的字符中的1个字符组成<代码>-2不是一个字符,它是一个
字符串
,因为它由字符序列组成,例如
'-'
'1'
。因此,您的代码所做的就是做正确的事情

现在,假设您确实需要字符来存储数字,那么您必须将负值映射到其他字符。
0..9
中的数字实际上是
48..57
。因此,您可以从ascci表中选取10个连续字符,并将它们视为-ve。假设你选了一个。。我是你的-ve数,然后a=-1,b=-2,依此类推


请记住,因为您使用的是字符,所以您不能处理两位数的数字,只要您将每个数字视为单个字符。然后你必须处理所有的“十进制”运算

-2是两个字符,这就是为什么您只看到第一个字符被按下。如果您将堆栈视为数字,请尝试
short
--2是两个字符,这就是为什么您只看到第一个字符被按下。如果您将堆栈视为数字,请尝试
short
-。非常感谢。这似乎很合乎逻辑,但如果我使用'a'来表示'-1',那么我如何使用它来进行后缀操作呢。我是否需要为所有可能的情况使用开关情况创建单独的映射。如果是,那么我将如何区分正数和负数。非常感谢。这似乎很合乎逻辑,但如果我使用'a'来表示'-1',那么我如何使用它来进行后缀操作呢。我是否需要为所有可能的情况使用开关情况创建单独的映射。如果是,那么我将如何区分正数和负数。