【发布时间】:2018-03-12 12:26:45
【问题描述】:
如何将 char 转换为 Integer 类型?
int p2 = (int)stack2.pop();
int p1 = (int)stack2.pop();
int res = result(p2, p1, calStr.charAt(i));
stack2.push(res);
我做了上面的方法,但是得到了一个runtime error,不能把java.lang.Character转换成java.lang.Integer
线程中的异常
"main"java.lang.ClassCastException:java.lang.Character无法转换为java.lang.Integer
【问题讨论】:
-
stack2真的是Stack<Character>吗?如果是,为什么? -
为什么要在这里将
char转换为int?您是否想问如何将单个数字(例如'2')转换为数字(例如2),然后使用Character.digit(ch, 10),但您真的只支持一位数字吗?在您的表达式评估器中?堆栈上的值不应该已经是一个数字吗? -
我使用 stack2 作为整数堆栈。我使用字符串来读取用户的中缀表达式,后缀表达式也是字符串的形式。但是当我尝试将特定索引处的 char 类型转换为 Int 时,它会给我运行时错误
-
那么是
calStr.charAt(i)失败了吗? -
no 错误显示在 int p2 =(int)stack2.pop(); int p1= (int)stack2.pop();我得到了 ASCII 数字的结果。(p1,p2 存储了 stack2.pop() 的 ASCII 数字。我使用了 int n= p2 - '0';
标签: java casting type-conversion