昨天做java题的过程中遇到一个问题:
如何把 char ‘3’ 转为 int 3,尝试直接赋值发现不能直接转化,那样得到是‘3’的ASCII码的值。
如下面:
public class Test {
public static void main(String[] args) {
char numChar = '3';
int intNum = numChar;
System.out.println(numChar + ": " + intNum);
}
}
输出结果如下:
3: 51
那如果要把char '3’转为int 3该怎么做呢,查阅网上资料,发现了两个简单的方法(这里以将char型数组与int型数组为例):
String num = "692223361219";
char[] arr = new char[12];
num.getChars(0,12,arr,0); //将字符从此字符串复制到目标字符数组。
int[] arr_num = new int[12];
for (int i = 0; i < arr.length; i++) {
arr_num[i]=arr[i];
System.out.println(arr_num[i] + " ");
}
直接转换结果为:
54 57 50 50 50 51 51 54 49 50 49 57 //不符合实际要求
解决方法:
方法一:
for(int i = 0;i < arr.length;i++){
arr_num[i] = arr[i] - '0';
System.out.print(arr_num[i] + " ");
}
输出结果为:
6 9 2 2 2 3 3 6 1 2 1 9 //达到要求
方法二:
for(int i = 0;i < arr.length;i++){
arr_num[i] = Integer.parseInt(String.valueOf(arr[i]));
System.out.print(arr_num[i] + " ");
}
输出结果相同:
6 9 2 2 2 3 3 6 1 2 1 9 //达到要求