A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘经鹏 中级黑马   /  2012-12-24 11:35  /  1480 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 刘经鹏 于 2012-12-24 17:17 编辑

char型变量中能不能存储一个中文汉字?

评分

参与人数 1技术分 +1 收起 理由
奋斗的青春 + 1 鼓励分 。

查看全部评分

4 个回复

正序浏览
能够定义成为一个中文的,因为java中以unicode编码,一个char占16个字节,char的存储空间为2个字节,而一个汉字占用空间大小也是两个字节,当然可以存放啦!!
回复 使用道具 举报
可以的。因为JAVA默认的编码是UNICODE,不是ASCII的一个char占2个字节
可以写个程序测试
public class Test
{
public static void main(String[] args)
{
char s='我';
System.out.println(s);
}
}
回复 使用道具 举报
  1. class Test4 {
  2.         public static void main(String args[])
  3.         {
  4.                 char c = '中';
  5.             System.out.println(c);
  6.         }
  7. }
复制代码
结果是可以,不过这段代码存成java文件的时候,要和你电脑上用的编码一致。也就是gbk或者gb2312.
回复 使用道具 举报
能,java中的字符就是指char类型的变量,无论中文还是英文,都是占2个字节,因为都是用Unicode编码,一个Unicode编码就是16位,也就是2个字节。所以放一个中文是没问题的

所以:

public class Test {

    public static void main(String[] args) {

       String myName="My name is 刺客SEO";

       char ke='刺'; //合法的

       System.out.println("我的姓氏为:"+ke); //输出:我的姓氏为:刺

       System.out.println(myName.substring(0, 1)); //输出:M

       System.out.println(myName.substring(myName.length()-1, myName.length())); //输出:通

    }

}

substring 处理的最小单元就是一个字符,也就是一个char类型,2个字节 。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马