Java 推入堆栈的char值具有不同的值

Java 推入堆栈的char值具有不同的值,java,char,stack,Java,Char,Stack,各位。 我需要在堆栈中放入char值: for(char ch: operand.toCharArray()) { System.out.println("ch: " + ch); numericsOfTheOperand.push((int) ch); System.out.println("numericsOfTheOperand.peek() " + numericsOfTheOperand.peek()); } 例

各位。 我需要在堆栈中放入char值:

        for(char ch: operand.toCharArray()) {
        System.out.println("ch: " + ch);
        numericsOfTheOperand.push((int) ch);
        System.out.println("numericsOfTheOperand.peek() " + numericsOfTheOperand.peek());
    }
例如,操作数:456454 控制台中的输出:

ch: 4
numericsOfTheOperand.peek() 52
ch: 5
numericsOfTheOperand.peek() 53
ch: 6
numericsOfTheOperand.peek() 54
ch: 4
numericsOfTheOperand.peek() 52
ch: 5
numericsOfTheOperand.peek() 53
ch: 4
numericsOfTheOperand.peek() 52
ch: 4
numericsOfTheOperand.peek() 52
我不明白,为什么价值是不同的?
如何解决它?

要将
字符
推送到
堆栈
中,您需要将其声明为:

Stack<Character> numericsOfTheOperand = new Stack<>();
输出:


您正在将
char
强制转换为
int
,从而获得它的
int
值。

要将
char
推到
堆栈中,您需要将其声明为:

Stack<Character> numericsOfTheOperand = new Stack<>();
输出:


您正在将一个
char
转换为
int
,从而获得它的
int
值。

您的NumericsofOperand是如何定义的?您的NumericsofOperand是如何定义的?
numericsOfTheOperand.peek() 4
numericsOfTheOperand.peek() 5
numericsOfTheOperand.peek() 6
numericsOfTheOperand.peek() 4
numericsOfTheOperand.peek() 5
numericsOfTheOperand.peek() 4