| 摘抄自 C# Text Manipulation String Handling and Regular Expressions Handbook by Francois Liger 1)Unicode对于每一个字符都提供唯一的值,而不管使用什么样的平台,也不管什么程序和编程语言 2)Unicode采用2字节编码方式,可以代表256×256=65536个字符。其存储空间和内存空间是采用ASCII的两倍 3)Unicode代理(surrogate) 4)Unicode的三种编码方式UTF(Unicode Transformation Formats) - UTF-8(8bit编码方式)是一种通用的HTML和XML编码,因为它的编码方案与ASCII标准的字符向后兼容。其优点是与ASCII有一一对应的关系
- UTF-16(16bit编码方式)标准的Unicode编码方式.Net FrameWork采用的就是UTF-16编码方式
- UTF-32(32bit编码方式)只是一种规范,并不实用。
C#中使用char定义一个Unicode,char结构中最有用的方法是GetUnicodeCategory() string band; band="The Albion Band"; Console.WriteLine(char.IsWhiteSpace(band,3)) //echo true Console.WriteLine(char.IsPunctuation('A')); //echo False IsWhiteSpace()方法,可以测试字符串中的第4个字符是否是空白,索引是从0开始的。 当字符串的长度存储在其开始处,称为结构化字符串或pascal字符串,一个特殊字符表示结束标记的则像C的字符串定义类型,其特点是方法灵活,允许字符串任意长度,效率比较高。字符串操作是一项比较浪费资源的活动,提升其效率的方法有: - 高速缓存技术,微软采用BSTR(Binary Strings)BSTR以空字符为结束标记
- 内置,内置池中有字符的散列表,当对字符进行比较或搜索时仅比较其散列值
字符串的五类操作 - 连接字符串
- 从字符串中抽取子窜
- 比较字符串
- 转换字符串
- 格式化字符串
内存的再分配会占用很多的操作时间&资源,所以连接字符窜操作时最耗资源的,因此预先知道字符串长度是最好的方法。 |