主要是根据Unicode来判断。你的那段程序应该没什么问题

解决方案 »

  1.   

    一个笨方法
    String s1 = new Character('哦').toString();
    System.out.println(s1.getBytes().length);
    是2的话就是全角未测试
      

  2.   

    呵呵,楼上的,Java中所有的字符都是两字节(16位)的
      

  3.   

    你可以试试看吗看看
    String s1 = new Character('A').toString();

    String s1 = new Character('哦').toString();用System.out.println(s1.getBytes().length);输出的结果一样不一样
      

  4.   

    哦,没注意那个getBytes(),呵呵
      

  5.   

    确实所有字符都是Unicode编码
    但是,String.getByte取得数组的时候进行了简化,ASCII嘛,仍然只占一个字节 ^_^