1. 程式人生 > >Java中char 轉化為int 的兩種方法

Java中char 轉化為int 的兩種方法

今天機試過程中遇到一個問題: 如何把 char ‘9’ 轉為 int 9, 大家應該知道,不能直接轉化,那樣得到是‘9’的Ascii. 如下面:

public class IntAndCharConvertor {
	public static void main(String[] args) {
		char numChar = '9';
		int  intNum = (int)numChar;
 		System.out.println(numChar + ": " + intNum);
	}
}

執行結果: 

9: 57
那麼怎麼把char'9' 轉為 int 9 呢?

方法一: 先把char轉為char[1]的陣列,然後轉為string,最後利用Integer中parserInt方法,此方法要建立多個物件,要消耗許多記憶體。

方法二: 利用char的封裝類 character, 通過如下靜態方法就可以直接實現。

    public static int getNumericValue(char ch) {
        return getNumericValue((int)ch);
    }

例子:
package com.albertshao.interview;

public class IntAndCharConvertor {
	public static void main(String[] args) {
		char numChar = '9';
		int  intNum = (int)numChar;
		System.out.println(numChar + ": " + intNum);
		
		//method 1:
		char[] charArray = {numChar};
		intNum = Integer.parseInt(new String(charArray));
		System.out.println("method 1: " + numChar + ":" + intNum);
		
		//method 2:
		System.out.println("method 2: " + numChar + ":" + Character.getNumericValue(numChar));

		}
	}
執行結果
9: 57
method 1: 9:9
method 2: 9:9