2016-02-13 69 views
0

我正在嘗試使用基於char的堆棧來解析後綴表達式。
我需要將一些負值推入我的基於字符的堆棧,例如'-2',但它只存儲'-'部分。
我確切的代碼看起來像這個 -
如何將一個負整數值轉換爲char數據類型

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


輸出爲"pushed is - "
請幫助。

+1

-2是兩個字符,這就是爲什麼你只看到推動的第一個字符。 – pczeus

+0

如果你把你的堆棧當成數字,試試'short' - [也是16位,就像char,但是簽名。](https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html)。 – Kenney

回答

1

char意味着它由字符在任何特定語言支持的字符。 -2不是1個字符,因此它由string組成,因爲它由字符序列組成,例如'-''1'。所以你的代碼做的是做正確的事情。

現在,鑑於您確實需要字符來存儲您的數字,您必須將您的負值映射到其他字符。 0..9的數字實際上是ascci #48..57。所以你可以做的是從ascci表中連續10個字符,並將它們視爲-ve。假設你選擇一個..我作爲-ve數然後a = -1,b = -2等等......

請記住,既然你使用的是字符,你不能處理兩個只要您將每個數字視爲一個單獨的字符。然後你必須處理所有的「十進制」操作。

+0

非常感謝。這似乎很合邏輯,但如果我使用'a'表示'-1',那我該如何使用它來做後綴操作。我是否需要爲所有可能的情況使用切換案例創建單獨的映射。如果是,那麼我將如何區分正數和負數。 –

相關問題