字符Char:

字符编码:

字符编码:也称字集码,是把字符集中的字符编码为指定集合中某一对象(例如:比特模式、自然数序列、8位组或者电脉冲),以便文本计算机中存储和通过通信网络的传递。

通俗的讲就是一套规则,将字符和响应的对象进行一一匹配,以便于在特定的场合使用,例如在计算机低层,使用二进制存储数据,因此使用高级语言编写的程序,最终会被转换为二进制,而这个转换规则,就是使用相应的字符编码。

常用的字符编码有:

ASCII码:美国定制,128个字符的编码,使用1个字节来存储,最高位为0,即实际表示数据的位有7位,即2^7次方,128个字符的表示方法。

ISO-8859-1:ISO定制,Latin1是ISO-8859-1的别名,是在 ASCII 码基础上又制定了一些标准用来扩展ASCII编码,即 00000000(0) ~ 01111111(127) 与ASCII的编码一样,对 10000000(128) ~ 11111111(255)这一段进行了编码,如将字符§编码成 10100111(167)。最多表示256个字符。

GB2312:GB2312其对所收录字符进行了"分区"处理,共94个区,区从1(十进制)开始,一直到94(十进制),每区含有94个位,位从1(十进制)开始,一直到94(十进制),共8836(94 * 94)个码位,这种表示方式也称为区位码,GB2312是双字节编码,其中高字节表示区,低字节表示位。

等等等

Unicode:Unicode是指一张表,里面包含了可能出现的所有字符,每个字符对应一个数字,这个数字称为码点(Code Point),它包含所有的字符。Unicode只是一个符号集,只规定的字符所对应的码点,并没有指定如何存储,如何进行存储出现了不同的编码方案,关于Unicode编码方案主要有两条主线:UCS和UTF。UTF主线由Unicode Consortium进行维护管理,UCS主线由ISO/IEC进行维护管理。

Java中的字符:

Java中的基本类型有:byte,char,short,int ,long ,float ,double,boolean.

注意:Java中的char类型占2个字节,C语言中字符类型占据1个字节,字符将相当于整型,每个字符都与整型有这个对应。

char基本类型使用2字节存储,java采用unicode编码,它的前128字节编码与ASCII兼容,所以‘A’和 'a'的值可以在ASCII码表中查到。当

通常用16进制表示,范围从’u0000’到’uFFFF’(u告诉编译器你在用两个字节[16位]字符信息表示一个Unicode字符)。

字符运算实例:

package com.dong.LeetCode;
/**
 * 运行结果:
 * 1
 * a
 * A
 * ?
 * a
 * 
 * b
 * ?
 * 0
 * `
 * a
 * @author liuD
 */
public class TestChar {
	public static void main(String[] args) {
		//char基本类型使用2字节存储,java采用unicode编码,它的前128字节编码与ASCII兼容,所以‘A’和 'a'的值可以在ASCII码表中查到。
		//通常用16进制表示,范围从’u0000’到’uFFFF’(u告诉编译器你在用两个字节[16位]字符信息表示一个Unicode字符)。
		char a = '1';
		char b = 'a';
		char c = 'A';
		
		System.out.println(a);
		System.out.println(b);
		System.out.println(c);
		//字符运算,其实就是先按照相应的进制进行加减乘除,然后结果再按照对应的字符显示
		//字符和字符,当字符的超出对应的十进制127后就会以?来表示。
		char as = 'a' + 'b';
		System.out.println(as); // 97 + 98 > 127, 用 ? 表示
		char bs = 'A'+' ';
		System.out.println(bs); // 65 + 32 = 97 , 97 对应  a
		char es = 'b' - 'a';
		System.out.println(es); // 98 - 97 = 1 , 对应标题开始字符 
		//字符和数字
		char cs = 'a' + 1;
		System.out.println(cs);  //在运算的时候,a 对应十进制97 , +  1 , 整数加法, 即66 ,再根据unicode对照表,b
		char ds = 'a' + 31;
		System.out.println(ds); // 97 + 31 = 128 , 以? 显示
		char fs = 'a' - '1';
		System.out.println(fs); // 97 - 49 = 48 , 结果为0
		char gs = 'a' -1;
		System.out.println(gs); // 97 - 1 = 96 ,结果为 ` 
		//乘除同理
		char hs = 'a' * 1 ;
		System.out.println(hs); // 97 * 1 = 97 ,结果为a
	}
}

 

如有总结不足,可以联系我进行补充,谢谢。