天道酬勤

.Net Frame 演示 by Leeson [TM]

导航

.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

posted on 2005-07-13 08:59  我自横刀哈哈笑  阅读(188)  评论(0)    收藏  举报