.Net Framework Programming 读书笔记(10)
[2005-05-19]
文本处理
字符与字符串处理机制。System.Char单个字符处理;System.String恒定的字符串;
System.Text.StringBuilder类执行一些高效的字符串动态创建操作。
12.1 字符
字符采用16位Unicode编码。System.Char 的MinValue/MaxValue(0x0000/0xFFFF)
转型/使用Convert类型/使用IConvertible接口
(char)/(Int32)等等,强制类型转换
12.2 System.String 类型
创建字符串:Evironment.NewLine的含义是随系统不同而改变。
字符串的恒定性
字符串比较(应该使用InvariantCulture特定的语言文化,比较字符串)
字符串驻留
字符串池技术 string pooling
查看字符串中的字符
字体为:Lucida Sans Unicode包含组合字符的字形。
其他字符串操作
Insert/Remove/Join/...
[2005-05-20]
12.3 高效地动态创建字符串
构造StringBuilder对象:容量/字符数组
分配新的对象
动态构造一个长度超过预设容量的字符串
在调用StringBuilder的ToString方法后,试图改变字符数组。
12.4 获取对象的字符串表达形式
特定格式与语言文化:System.IFormattable接口的实现。(例如:Datatime类型支持用“D”表示长日期格式)
将多个对象格式化为一个字符串:String.Format(...)
提供自定义格式化器:例如,格式化一段用户在浏览器上查看的HTML文本。
IFormatProvider,ICustomFormatter
12.5 通过解析字符串获取对象
任何能够解析一个字符串的类型都提供有一名为Parse的公有静态方法。(接受一个String,返回一个类型实例)
从某个角度看Parse的行为象一个构造器。
例如:
Int32 x = Int32.Parse("1A",NumberStyles.HexNumber,null);
Console.WriteLine(x); //显示“26”
12.6 编码:字符与字节之间的转换
在CLR中,所有的字符都被表示为16位Unicode码值,并且所有的字符都由16位Unicode码组成。
(参见源程序)
Encoding的实例,调用方法GetBytes(s)...返回Byte[]编码
字符与字节的编码/解码流:网络传输UTF-16字节可能为5或7个--导致数据损坏。
解决方法:GetDecoder。
一个继承自Encoding的类型用于无状态的编码和解码。
一个继承自Decoding的类型只能用于解码。
Base-64 字符串编码与解码
Convert.FromBase64String()/Convert.ToBase64String
浙公网安备 33010602011771号