- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
字符、字符串及文本处理
HYPERLINK /lwenwen/p/3278108.html 字符、字符串和文本处理
1.1字符
在.NET Framework中,字符都是用16位Unicode编码(UTF-16)的(编译时用UTF-16编码成2进制存到硬盘,程序运行时再用utf-16解码显示代码中的字符串,在内存中相应的字节流就是用UTF-16编码过的),也就是说所有字符都是占2个字节16位,这简化了国际化应用程序的开发。Unicode字符集有很多种编码方案,常用的有:
UTF-16:所有字符被编码成2个字节
UTF-8:十进制小于128的字符被编码成1个字节(可表示欧美地区使用的字符),128~2047的字符被编码成2个字节(可表示欧洲和中东语言),大于2047的字符被编码成3个字节(可表示东亚地区的语言)
UTF-32:所有字符都被编码成4个字节
Unicode字符集还有个ASCII编码方案,这种编码只能将小于128的16位字符转换成单字节,而其他超过127的字符都会丢失。
GB2312等 HYPERLINK /lucas-zong/articles/2065689.html \t _blank 其他字符集(这些字符集可能只有一种同名编码方案)
针对Char的一个实例,可以调用Char类型的静态方法Get Unicode Category,这个方法返回的是System. Globalization. Unicode Category枚举类型的一个值。这个值指出该字符是控制字符、货币符号、小写字母、大写字母、标点符号、数字符号 还是其他Unicode标准定义的符号。 其他一些静态方法如IsDigit、IsLetter、IsUpper、IsControl、IsSymol等都在内部调用了Get Unicode Category,并简单返回true或false。注意,所以这些方法要么获取单个字符作为参数,要么获取一个String以及目标字符在这个String中的索引作为参数。
另外,可以调用静态方法To Lower Invariant或者To Upper Invariant以一种忽略语言文化的方式,将一个字符转化为小写或大写。如果调用To Lower和To Upper方法,在转换时要使用与线程相关的语言文化信息,语言文化信息是这两个方法在内部查询System. Threading. Thread类的静态Current Culture属性来获得的。还可以向这些方法传递Culture Info类的一个实例来具体指定一种语言文化。To Lower和To Upper之所以需要语言文化信息,是因为字母的大小写转换是依赖于语言文化操作的。
可以使用三种技术实现各种数值类型与Char实例的相互转换,下面按照优先顺序列出这些技术。
?
*转型(强制类型转换)要将一个Char转换成一个数值(如Int32),最简单的方法是强制类型转换。在三种技术中,这种技术效率最高,因为编译器会生成IL(Intermediate Language中间语言)指令来执行转换,不必调用任何方法。
*使用Convert类型?System. Convert类型提供了几个静态方法来实现Char和数值类型的相互转换。这些方法都以checked方式来执行转换,因此一旦发现转换造成数据丢失,就会抛出一个Overflow Exception异常。
*使用I Convertible接口?Char类型和FCL中的所有数值类型都实现了I Convertible接口。该接口定义了像ToUInt16和To Char这样的方法。但是这种技术效率最差,因为在值类型上调用一个接口方法,要求对实例进行装箱(Char和所有数值类型都是值类型)。如果某个类型不能转换(比如Char转换成Boolean),或者转换造成数据的丢失,I Convertible的方法会抛出一个System. Invalid Cast Exception异常。
以下代码简单演示如何使用这三种技术
?View Code
1.2 System. String类型
1.2.1 构造字符串
一个String代表一个不可变的顺序字符集。String类型直接派生自Object,所以它是一个引用类型。因此String对象总是存在于堆上,永远不会跑到线程栈。许多编程语言都将String视为一个基元类型----可以再源代码中直接表示文本常量字符串(string s=hi); 编译器将这些文本常量字符串放到模块的元数据中,并在运行时加载和引用它们。
在C#中,不能使用new操作符从一个文本常量字符串构造一个String对象。
对于换行符、回车符和退格符这样的特殊字符,C#采用的是C/C++开发人员熟悉的转义机制:
1 // 包含回车符和换行符的字符串
2 st
您可能关注的文档
- 如何准确选择买入及卖出的时机.docx
- 如何创建1个亚马逊listing.docx
- 如何创设一个师生互动及谐的美术课堂.doc
- 如何删除word中多余的空格及空段、手工换行符.doc
- 如何减小307的油耗和驾驶中的顿挫感.doc
- 如何判断企业合并是否属于同1控制下的企业合并.docx
- 如何判断客户是否支持我们和支持的程度.doc
- 如何判断葡萄酒的最佳适饮期及陈年潜力.doc
- 如何判断身体有湿气以和如何排湿.doc
- 如何利用下班4个小时.doc
- 2025至2030中国婴儿拉式蚊帐行业发展现状及发展趋势与投资风险报告.docx
- 2025至2030中国半导体陶瓷靶行业项目调研及市场前景预测评估报告.docx
- 2025至2030中国果汁行业供需趋势及投资风险报告.docx
- 2025至2030中国双节距滚子链行业项目调研及市场前景预测评估报告.docx
- 2025至2030全球及中国电子电气中的cPDM行业项目调研及市场前景预测评估报告.docx
- 2025至2030工业风幕行业发展趋势分析与未来投资战略咨询研究报告.docx
- 2025至20305G技术行业发展趋势分析与未来投资战略咨询研究报告.docx
- 2025至2030钛合金行业产业运行态势及投资规划深度研究报告.docx
- 2025至2030中国冶金工程施工总承包行业运营态势与投资前景调查研究报告.docx
- 2025至2030铁路IT支出行业产业运行态势及投资规划深度研究报告.docx
文档评论(0)