今天机试过程中遇到一个问题: 如何把 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