今天機試過程中遇到一個問題: 如何把 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: 57method 1: 9:9method 2: 9:9