外贸网站价格网址关键词查询
目录
一、字符型简单介绍
二、代码演示说明
一、字符型简单介绍
字符型char在Java语言中占用 2 个字节,char类型的字面量必须使用半角的单引号括起来,取值范围为[ 0 - 65535 ],char 和 short 都占用 2 个字节,但是 char 可以取到更大的正整数,因为 char 类型没有负数。
Java语言中的char类型变量可以容纳一个汉字。请看以下程序:
public class CharTest01 {public static void main(String[] args) {char c = '中';System.out.println(c);}
}
我们对以上的程序编译并运行,请看下图结果:
我们可以看到 Java 中的 char 类型确实可以储存一个汉字。我们再来看以下程序,假设字符我们采用双引号括起来会怎么样:
public class CharTest01 {public static void main(String[] args) {char c = "中";System.out.println(c);}
}
我们对以上的程序进行编译,请看下图编译结果:
我们看到编译器报错了,并且提示的错误信息是 “不兼容的类型” ,这是因为双引号括起来的不是 char 类型,而是 String 类型,
其实 String 类型就是 Java 中的字符串类型,但大家要知道字符串不属于基本数据类型,而是引用数据类型,所以类型不兼容。
接下来我们来测试一下两个或多个字符是否可以使用单引号括起来,请看以下代码:
public class CharTest01 {public static void main(String[] args) {char c = 'ab';System.out.println(c);}
}
我们对以上的程序进行编译,请看下图编译结果:
我们可以看出,编译器报错了,错误信息是“未结束的字符文字”,这是因为 Java 中有规定,字符型只能是单个字符,
当编译器检测到 ' ab ' 的时候,左边以单引号开始,继续检测到 a字符,然后编译器会继续检查下一个字符是否为另一半单引号,
结果不是,而是 b,所以编译器报错了。这也说明了 Java 中的字符只能是单个字符,不能是多个字符。
二、代码演示说明
package t08_字符型_char;
import java.util.Random;
/*** 字符类型:char* 1)字符类型是一个占2字节,16位无符号整数,数值是字符的Unicode编码* 2)范围:0~65535 * 3)char运算* 用单引号''标识,只能放单个字符* char类型是可以运算的,因为char在ASCII等字符编码表中有对应的数值。* 在JAVA中,对char类型字符进行运算,直接当做ASCII表对应的整数来对待* * 字符是一个数! * 记住:字符是一个数* * @author luminal*/
public class TestChar {public static void main(String[] args) {// testChar();//演示字符类型说明
// testSpecialCharacters();//特殊字符的编码:换行、回车、tab、斜杆等
// testCapital();//大写字母的编码
// testLowercase();//小写字母的编码
// testNum();//数字的编码testOhter();//char运算-随机大写字母}/*** char运算-随机大写字母* */private static void testOhter() {char c = 20013;System.out.println(c);//中c = '中';System.out.println(c);//中c ='中'+1;System.out.println(c);//丮c='中'+'国'; System.out.println(c);//ꔪ//char m='中'+"国";//编译错误,String无法转换为char。//字符类型是一个占2字节,16位无符号整数,数值是字符的Unicode编码//java中字符采用的表示方式是 Unicode编码,它是一种字符编码格式。//Unicode编码:一个英文等于两个字节,一个中文(含繁体)等于两个字节。//c='中国';//编译错误。 c = 65;System.out.println(c);//Ac = 'A' + 1;System.out.println(c);//Bc = 'A' + 2;System.out.println(c);//C/*** 随机大写字母*/Random random = new Random();int n = random.nextInt(26);//[0,26) c = (char)('A' + n);//计算生成 A~Z 的随机字符System.out.println(c);}/*** 数字的编码*/private static void testNum() {//'0'~'9' : 48~57System.out.println(0);//0System.out.println('0');//0System.out.println((int)'0');//48System.out.println((int)'1');System.out.println((int)'2');//......System.out.println((int)'7');System.out.println((int)'8');System.out.println((int)'9');}/***小写字母的编码*/private static void testLowercase() {//'a'~'z':97~122System.out.println((int)'a');System.out.println((int)'b');System.out.println((int)'c');//......System.out.println((int)'x');System.out.println((int)'y');System.out.println((int)'z');}/***大写字母的编码*/private static void testCapital() {//'A'~'Z':65~90System.out.println((int)'A');System.out.println((int)'B');System.out.println((int)'C');//......System.out.println((int)'X');System.out.println((int)'Y');System.out.println((int)'Z');}/*** 特殊字符的编码:换行、回车、tab、斜杆等*/private static void testSpecialCharacters() {char c;c = '\n';//表示:换行字符(new Line)是特殊控制字符c = '\r';//表示:回车字符 returnc = '\t';//表示:tabc = '\\'; //表示:一个\System.out.println(c);c = '\''; //表示:'c = '\"'; //表示:" c = '\u4e2d';//表示:16进制Unicode 编码System.out.println(c);System.out.println((int)'帅');//24069System.out.println((int)'气');//27668System.out.println((int)'华');//21326System.out.println((int)',');//44System.out.print((char)24069);//帅System.out.print((char)27668);//气System.out.print((char)21326);//华System.out.print((char)44);//,}/*** 演示字符类型说明*/private static void testChar() {//char类型,在java当中占2个字节,16位无符号字节类型,//它的范围是:0~65535//在java当中,为了能够表示各种字符,//所以它将这个字符,定义为2个字节,//而C语言中,字符类型是一个字节的,它只能最多表示255种字符,//算上0,就是256种字符。//而在java当中的字符类型char,它可以表示0~65535种字符,//java中字符采用的表示方式是 Unicode编码,它是一种字符编码格式。char ch;ch = 'a';System.out.println(ch);//a//我们还可以对这个字符类型,采用整数来赋值ch = 97;System.out.println(ch);//a//对于一个字符来说,当我们在存储的时候,//它会有相应的ASCII码,也就是以整数的形式来存储的。//常用的字符如:键盘上的26个字母、数值0-9//即字符的表示,在我们的内存当中,都是采用整数来表示的,//所以我们可以采用整数来对一个字符变量来进行赋值//赋值char变量后,它输出的是:字符编码表中对应的字符。// c 是 char 变量,20013 是int类型的字面量char c = 20013;System.out.println(c);//中,即20013表示中// 不能进行超范围赋值!“int字面量”在“不超过char范围”情况下// 可以给char变量赋值// 字面量相加,java按照一个整除处理//c = -1;//编译错误,超范围c = 65535;//c = 65536;//编译错误,超范围c = 65;System.out.println(c);//A ,即65表示A//c = 'A' + 65535;//编译错误,超范围c = 'A' + 65000;//字面量相加结果如果不超范围没有问题System.out.println(c);//︩int bbb = 65;//定义变量a//c = bbb; //编译错误,“int类型变量” 不能赋值给char变量c = (char) bbb;System.out.println(c);//Ac = 'A'+1;//相当于 65+1 System.out.println(c);//Bc = 66;System.out.println(c);//B,即66表示B}}