经常会遇到需要转换字节数组和字符数组,以及编码问题。
即便是老手,都不一定能搞明白他们的关系。除非你回去看书,把基础复习一遍记下来打牢。
string:是字符串的意思。
char:是字符的意思。它用于表示字符。但字符可能是2个char组成的,不过大多数情况下,一个字符,对应一个char。
byte:表示字节。
unicode:编码,它包含了这个星球的所有语言。所以又有别称“万国码”。
好的,下面重点:
一个字符串string,通常由N个字符char组成,所以,string.length,就是N。
但由于存在2个char组成1个字符的情况,所以判断一个string有几个字(如汉字、表情等),则不一定是等于string.length。
通常,表情,就是由2个char来组成一个字符,这个字符代表这个表情。
每个字,都有对应的一个unicode,所以,一个unicode,就可能是由2个char组成的。
一个char通常是16位的,一个byte通常是8位的。所以每个char,可以用2个byte来表示。
byte的最小值是0,最大值是255。
char[]和byte[]基于上面的逻辑,可以进行相互的转换。
综上,一个unicode大多数时候对应一个char,但特殊的(如表情)可能是对应2个char。字符串string的长度length,就等于有几个char的实例。字符串中包含几个字,不一定等于char的个数,也不一定等于char的个数的一半。
针对这些知识,我也没有那么懂,不是懂王。。。
祝您用餐愉快。