char c='a';
char[] cc=new char['a'];
System.out.println(font.charWidth(c));
System.out.println(font.charsWidth(cc,0,1));为什么打印的结果一个是6 一个是8;

解决方案 »

  1.   

    new char['a'];
    这是啥意思?用'a'的Unicode编码值作数组的长度?
      

  2.   

    steedhorse(晨星)说得对,你创建了一个长度为 0x65 ('a'==0x65) 的字符数组。
    font.charWidth(c) 得到的是字符'a'的宽度;
    font.charsWidth(cc,0,1)得到的是cc中第一个字符的宽度,不过这个字符是什么是随机的,它不是'a'。
    如果你想两者一样,你应该这样初始化cc:
    char[] cc=new char[]{'a'};
    --
    http://www.agui.googlepages.com
    mailto: agui.cn(a)gmail.com
      

  3.   

    你创建了一个长度为 0x65 ('a'==0x65) 的字符数组
    -----------
    'a'==97
    'A'==65
    0x65==96+5=101
      

  4.   

    我写了一个算法 是用来计算一段字符数组的长度 
    font.charsWidth()可以截取一字符串中某段存入字符数组中 可不知道为什么 存入字符数组的长度都是一样长8 我的字符串中的数据 有可能是 字母 数字 标点符号 汉字 他们的长度可是不一样的 标准字体一般 数字和标点是6 字母是8 汉字是11啊 这样的话我打印到屏幕上的字符间隔看起来很不均匀
      

  5.   

    纠正一下 上面的font.charsWidtt()换成src.getChars(); char c='a';
    String s="12345ABCDE你好啊!@#$%";
    char cc=new char[s.length];利用src.getChars()方法把字符串转化成字符数组
    System.out.println(font.charWidth(c));System.out.println(font.charsWidth(cc,0,1));System.out.println(font.charsWidth(cc,5,6));System.out.println(font.charsWidth(cc,10,11));打印的结果是 6 8 8 8