2014-09-28 52 views
0

我讀了幾篇關於將int轉換爲char的文章。但是他們都沒有詳細解決我的問題。就像我想將5轉換爲'5'一樣。由於int有4個字節,而char只有2個字節,所以它縮小了轉換範圍。我在這裏得到了兩個問題: 1.爲什麼(char)(a +'0')能夠成功轉換a到char而(char)a失敗? 2.如何確保在此轉換中沒有信息丟失?如何將int轉換爲java中的char?它爲什麼有效?如何防止信息丟失?

+0

您需要了解Unicode值。 – SLaks 2014-09-28 20:13:32

+0

您知道'int'包含的值高達'Integer.MAX_VALUE'(2^31 - 1),而'char'只包含一個「整數」數字?因此,對於int> 9,損失是不可避免的。 – Smutje 2014-09-28 20:14:08

回答

1
  1. 爲什麼(焦炭)(A + '0')可以轉換成功,而炭(char)的一個失敗?

這是因爲a + '0'相當於a + 48,這是53。這對應於字符'5'
只是將int5轉換爲char會創建一個不可打印的char,這是您解釋爲無法工作的原因。

  1. 如何確保在此轉換中沒有信息丟失?

您可以檢查是否在a值足夠小,適合在一個char使用Character.MAX_VALUE

0

char類型只能表示單個字符,因此只能將數字從0轉換爲9.如果希望較大的數字作爲文本,請使用字符串(例如,

String str = a + "";