20201223-韩德云
2020.12.23日志
日志
字符序列和字节序列
基本描述:
字符序列:char sequence
char数组就是有序排列的字符序列,
char[] chars = {云,创,动,力};
字节序列:byte sequence
byte数组就是有序排列的字节序列.
byte[] bytes = {22,3,4,5,65};
字符序列和字节序列可以通过字符编码相互转换.
常用的字符编码:
-
GBK:中文简体(采用两个字节)
-
UTF-8:长度可变的字符编码(使用1-4字节存储字符)
-
Big5:繁体中文
-
ISO-8859-1:西欧(latin-1)
补充:
-
String字面量就是一个字符序列.
-
接口类型的引用变量指向实现类型的对象
-
返回对象所引用的字符串形式: .toString();
例:
charsequence han = "汉"; system.out,println(han.toString());
-
获得指定索引处的字符:
char ch = han.charAt(3);//索引是3
常用的charset方法:
-
java.nio.charset.Charset类的实例表示字符编码
-
Charset.defautCharset() :返回Jvm默认的charset实例
Charset ct = Charset.defaultChartset();
-
Charset.forName( String charsetName ) :返回指定名称的charset实例.
Charset ct = Charset.forNameCharset("GBK");
-
Charset.isSupported( String charsetName ) :判断当前的Jvm是否支持指定的字符编码
charsetName = "GB3230"; system.out.printin(Charset.isSupported(charname));
-
编码:(encode)
什么是编码:将字符序列(charsequence)转换为字节序列(byte)的过程就是编码(encode).
注意 : 将char sequence 转换为 byte sequence 时,必须使用字符集,若未定义设置,会使用平台默认字符集:Charset.defaultCharset().
解码:(decode)
将字节序列(byte sequence)转换为字符序列(char sequence) 的过程就是解码(decode)
byte sequence 转换为char sequence 时,必须使用字符集,若未定义,使用平台默认的字符集.
转换实例:
byte[] bytes = source.getByte(UTF=8charset);
问题
-
char数组{}里面是否能直接存放汉字?
如:
char[] chars = {云,创,动,力};
可以存放,因为汉字本身就是字符.而char就是字符序列.
吐槽
基础太薄弱了,这几天讲的时候完全跟不上,上课的时候太容易走神,盯着屏幕不知不觉就短路了......
评论