首先说明一下问题由于某个项目的需求需要使用到 int [ ] 的数组,由于数据最初是 string 类型的,为了方便就先把 string 类型的数据转化成了 char [ ] ,可是项目需要的是 int [ ] 的数据,所以还得把 char [] 转化成 int []
在转化的过程中 1,变成了49,2变成了 50....考虑了很久才忽然想起48是 1 的 ASCLL 值,49 是2 的 ASCLL值
于是方案就出来了,0到 9 的 ASCLL 值比 实际值小 48 于是得到如下代码
public class char_to_int {
//把 char [] 转化成int []
protected static int [] char_to_int(char [] a){
int charToInt[] = new int [a.length];
for (int i=0;i<a.length;i++){
charToInt[i] =(int) a[i]-48;//由于0~9的 ASCLL值比实际值大 48 所以要减去48
}
return charToInt;
}
public static void main(String[] args) {
char a[] ={ '1','2','3','4','5'};//初始化 char [] 数组
for (int i=0;i<a.length;i++){//输出char数组
System.out.println(a[i]+"");
}
int b[]=char_to_int(a);//转化后的 char [] 数组
for (int i=0;i<b.length;i++){//输出转化后的 char[] 数组
System.out.println(b[i]);
}
}
}