在java中从object转换为char

时间:2012-11-29 14:48:43

标签: java stack

在我的一个问题中,我得到RuntimeException,因为有必要将对象转换为char。我试图通过使用charValueOf()方法来获取对象的原始值,但无法做到。这是我的代码.....

while ((stack.size() > 0) && (stack.peek() != '('))
{
    if (ComparePrecedence(stack.peek(), infix[i]))
    {
    }
}
boolean ComparePrecedence(char top, char p_2)
{
}

我该如何解决这个问题?感谢..

3 个答案:

答案 0 :(得分:6)

尝试将通用对象转换为char通常不是一个好主意,因为它没有任何意义。如果对象是角色,您可以使用以下内容。

char ch = o.toString().charAt(0)

答案 1 :(得分:0)

我认为你有一个例外,因为你没有使用字符包装类的实例。如果您使用an instance of the character wrapper class,则可以调用/使用charValue方法。

答案 2 :(得分:0)

您遇到的问题是由您正在使用的堆栈引起的。堆栈是基于对象的,因此它允许您推送char类型,但是当您弹出或查看它们时,它们将作为对象类型出现。如果您总是要推送char类型值,则可以更改堆栈代码以接受通用类型,例如<Character>

另一种选择是在你偷看或弹出时将对象强制转换为(Character)

while ((stack.size() > 0) && ((Character) stack.peek() != '('))
{
    if (ComparePrecedence((Character) stack.peek(), infix[i]))
    {
    }
}