大家好,有个问题想请教:
char c='2';
int a[]=new int[3];
现在想在数组a的索引为2(动态的,根据c的值取)的位置存放一个值,能怎么做?我试了a[c]=100;会出错,数组越界这样会行将c转化成了int...求简单的好的方法,谢谢!

解决方案 »

  1.   

    你要明白char c='2';的unicode值是多少   50   所以数组会下标越界
    数组下标只能是正整数还得是int型的。
      

  2.   

    char c='2'-48;
    int a[]=new int[3];a[c]就不会错了
      

  3.   


    public static void main(String[] args) throws IOException {
     char c='2';
     int a[]=new int[3];
     a[2] = 8;
     System.out.println(a[Character.digit(c, 10)]);
      }
      

  4.   

    可以直接减去48就可以保证逻辑上的值跟获得int值对应了,不过你还是要小心数组越界的问题
    char c='9';
    int a[]=new int[3];
    int d=Character.valueOf(c)-48;
    System.out.println("解析值d="+d);
    a[d]=3;
      

  5.   

    char可以做为一个int,但是你new int[3]长度为3,c=‘2’的int值比你数组长度大了,当然越界了。
    你自己处理下0-9的char的值应该是48-57.
    a[c-48]=100