[Java] 將字元轉成數字

在Java中,若要要將數字字元,即0~9轉成整數型態,若用強制型別轉換,因為數字字元的ascii碼是從48開始,所以會產生錯誤。

而我們要解決這個困難,則有兩種方法可以實做,一種是靠JAVA的Character類別所提供的方法,另一種則是靠我們手動寫程式。

先說手動寫程式法吧,我們只要寫下面的程式碼就可以了

 int num = '數字字元'- '0';

其中數字字元表示 0~9。

而第二種方法則是使用Character類別中的getNumericValue方法,用法如下:

public static int getNumericValue(char ch);
public static int getNumericValue(int codePoint)

其中ch為要轉換的字元。

所以,如果我們要將字元轉換成數字,則可以使用下列方法:

Character.getNumericValue(ch)

其中,ch可接受的範圍為0~9、A~Z、a~z。

而您一定會很好奇的是,字元輸入的是A、B…等英文字母,那會轉成什麼呢?答案是若是英文單字A,則會轉成10,Z則會轉成35,而英文字母是不分大小寫的。

另外,你也可以用codePoint,即ascii碼來轉,以下為他的範例:

Character.getNumericValue(codepoint)

其中codepoint為整數,可接受的範圍為「48~57」,「48對應到0」,「49對應到1」等,以此類推,「57會對應到9」。

而這僅僅適用於字元轉成數字,但不適用於字串轉成數字喔!

Subscribe
Notify of
guest

1 Comment
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
haward79
haward79
8 years ago

謝謝~尋找到了我要的資料!
Character.getNumericValue()