2012-11-29 39 views
-3

在我的一個問題中,我得到了RuntimeException,因爲有必要將對象轉換爲char.I試圖通過使用charValueOf()方法來獲取對象的原始值,不要這樣做。這是我的代碼.....java中從對象到char的轉換

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

我該如何解決這個問題?謝謝..

+3

什麼是堆棧和綴?你會得到什麼例外? – assylias

+0

爲了充分回答這個問題,需要更多信息。 – mre

回答

3

它通常不是一個好主意嘗試將通用對象轉換爲字符,因爲它沒有任何意義。如果對象是角色,則可以使用以下內容。

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

如果對象是「Character」,則可以投射該對象,然後調用['Character#charValue'](http://docs.oracle.com/javase/7/docs/api/java/lang/Character。 html#charValue%28%29)來獲取原語。 – mre

+1

我懷疑OP不知道它是一個「Character」還是一個字符或者其他字符。 ;) –

+0

可以理解,但如果OP不知道他的代碼正在處理的對象的類型,那將會很難過! :) – mre

0

我想你有一個異常,因爲你沒有使用字符包裝類的實例。如果你使用an instance of the character wrapper class,那麼你可以調用/使用charValue方法。

0

您遇到的問題是由您使用的堆棧造成的。該堆棧是基於對象的,因此它允許您推送字符類型,但是當您彈出或查看它們時,它們將以對象類型出現。如果您始終要按字符類型值,則可以更改堆棧代碼以接受通用類型,例如<Character>

另一種選擇是做流行音樂,當你偷看或投對象回(Character)

​​