第十二章 管理类型(In .net4.5) 之 操作字符串
1. 概述
本章包括 字符串基本操作 以及 查找、遍历、格式化字符串。
2. 主要内容
2.1 在.net平台中使用字符串
C#中,string是用来保存文本信息的。是一个被当做值类型使用的引用类型。
C#中,string对象是不可变的。每次更改都会重新创建一个string对象。.net内部有称为字符串驻留(interning)的机制来优化效率。
2.2 操作字符串
① StringBuilder
StringBuilder 会使用内部的字符串缓存来提高效率。甚至可以允许修改内部某一个字符。
当操作不定数量的字符串时,StringBuilder是较好的选择。
StringBuilder sb = new StringBuilder(string.Empty); for (int i = ; i < ; i++)
{
sb.Append("x");
}
② StringWriter 和 StringReader
两者都使用StringBuilder来实现功能。
2.3 查询字符串
① IndexOf 和 LastIndexOf
string value = "My sample value";
int indexOfp = value.IndexOf('p'); // returns 6
int lastIndexOfm = value.LastIndexOf('m'); //returns 5
② StartsWith 和 EndsWith
string value = "<mycustomeinput>";
if (value.StartsWith("<")) { }
if (value.EndsWith(">")) { }
③ SubString
④ 正则表达式
string pattern = "(Mr\\.? | Mrs\\.? | Miss | Ms\\.? )";
string[] names = { "Mr. Henry Hunt", "Ms. Sara Samuels",
"Abraham Adams", "Ms. Nicole Norris"}; foreach (string name in names)
Console.WriteLine(Regex.Replace(name, pattern, String.Empty));
2.4 遍历字符串
string实现了IEnumerable 和 IEnumerable<Char> 接口。可用foreach遍历。
2.5 格式化字符串
DateTime d = new DateTime(, , );
CultureInfo provider = new CultureInfo("en-US");
Console.WriteLine(d.ToString("d", provider)); //3/27/2015
Console.WriteLine(d.ToString("M", provider)); //March 27
IFormatProvider 主要用于获取一个控制格式化的对象,不做实际格式化操作。
IFormattable 提供了把一个对象的值转化成字符串形式的功能。与Convert类所做的正好相反。
*所有的CultureInfo对象都实现了IFormatProvider接口。
3. 总结
① C#中,string是一种不可变的引用类型。
② 进行大量的字符串操作的时候,推荐使用StringBuilder。
③ String类提供了大量处理字符串的方法:IndexOf, LastIndexOf, StartsWith, EndsWith, SubString.
④ String可以被当做字符集合来遍历。
⑤ 格式化是把其他对象当做字符串来显示的过程。
⑥ 可以给自己的类型添加字符串格式化操作。
第十二章 管理类型(In .net4.5) 之 操作字符串的更多相关文章
- 进击的Python【第十二章】:mysql介绍与简单操作,sqlachemy介绍与简单应用
进击的Python[第十二章]:mysql介绍与简单操作,sqlachemy介绍与简单应用 一.数据库介绍 什么是数据库? 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,每个数 ...
- 第十一章 管理类型(In .net4.5) 之 管理对象的生命周期
1. 概述 本章内容包括 管理非托管资源.使用IDisposable接口 以及 管理析构器和垃圾回收. 2. 主要内容 2.1 理解垃圾回收机制 ① 代码执行的时候,内存中有两个地方存放数据项:堆 和 ...
- 第二十二章 数据访问(In .net4.5) 之 集合
1. 概述 本章内容包括 .net平台中的集合.如何选择集合 以及 如何实现自定义集合. 2. 主要内容 2.1 使用数组(Array) ]; ; x < arrayOfInt.Length; ...
- 第七章 管理类型(In .net4.5) 之 使用类型
1. 概述 本章介绍 值类型的装箱拆箱.类型转换 以及 C#4.0新推出的 dynamic 关键字. 2. 主要内容 2.1 装箱和拆箱 2.2 类型转换 有四种方式可以实现类型转换: ① 隐式转换: ...
- 第六章 管理类型(In .net4.5) 之 创建类型
1. 概述 本章内容包括 C#5中如何更好的创建类型以及如何扩展现有类型. 2. 主要内容 2.1 如何选择类型 C#类型系统包括三种类型:值类型.引用类型.指针类型.(指针类型用于非托管代码,很少使 ...
- 第九章 管理类型(In .net4.5) 之 继承机制
1. 概述 本章包括 设计和实现接口.创建和使用基类 以及 使用.net类库提供的标准接口. 2. 主要内容 2.1 设计和实现接口 一个接口包含公共的方法.属性.事件.索引器.类和结构都可以实现接口 ...
- sql 入门经典(第五版) Ryan Stephens 学习笔记 (第六,七,八,九,十章,十一章,十二章)
第六章: 管理数据库事务 事务 是 由第五章 数据操作语言完成的 DML ,是对数据库锁做的一个操作或者修改. 所有事务都有开始和结束 事务可以被保存和撤销 如果事务在中途失败,事务中的任何部分都不 ...
- perl5 第十二章 Perl5中的引用/指针
第十二章 Perl5中的引用/指针 by flamephoenix 一.引用简介二.使用引用三.使用反斜线(\)操作符四.引用和数组五.多维数组六.子程序的引用 子程序模板七.数组与子程序八.文件句 ...
- 《Django By Example》第十二章 中文 翻译 (个人学习,渣翻)
书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:第十二章,全书最后一章,终于到这章 ...
随机推荐
- cwRsync 配置文件详解
GLOBAL PARAMETERS(全局参数) The first parameters in the file (before a [module] header) are the global p ...
- PreparedStatement和Statment
使用Statment安全性差,存在SQL注入隐患 public static void main(String[] args) { Connection conn=null; Statement st ...
- FPS学习记录
最近在网上查了一些FPS的相关知识,在此和大家一起分享.FPS(Frames Per Second):每秒传输帧数,它是图像领域中的一个术语. Frames Per Second更确切的解释是“每秒中 ...
- SMTP邮件发送命令
第一步,远程登录smtp服务器 在命令行窗口输入 telnet smtp.163.com 25 然后回车第二步,用户登录 输入 helo 163.com 回车,这是向服务器表明你的用户身份250 OK ...
- 【CImg】三角形绘制算法实现
这周的CV基础练习是简单的图形绘制:比如说矩形.三角形和圆心什么的.会发现其实矩形和圆形的实现思路都很直白,矩形只需要确认两个对角坐标就可以了,圆心只需要确认圆心和半径,接着就是简单的遍历各个像素点判 ...
- Orchard官方文档翻译(六) 建立你的第一个Orchartd站点
让我们开始 该主题内容已在Orchard1.8Release版本下测试通过. 这里通过向导式的教程来告诉大家Orchard的功能如何使用.如果你是第一次使用Orchard,该文档就是为你而准备的! O ...
- 计数排序(Count Sort )与插入排序(Insert Sort)
计数排序法:计数数组适用于当前数组密集的情况.例如(2,3,5,4,2,3,3,2,5,4) 方法:先找出最大值最小值,之后统计每个数出现的次数,根据次数从小到大往数组里添加 计数排序法是一种不需要比 ...
- 操作系统是怎么工作的——mykernel环境的搭建
可以参见:https://github.com/mengning/mykernel 首先感谢:http://www.euryugasaki.com/archives/1014 1.搭建实验环境(实验环 ...
- jquery递归遍历xml文件,形成ul-li序列,生成树结构(使用了treeview插件)
treeview插件从这里获得,下载的文件中有demo,看demo文件夹里面的index.html文件就差不多知道如何使用该控件了,在我做的项目里用到的部分代码截图如下(在引用下面的js文件前要先引用 ...
- Leetcode026. Remove Duplicates from Sorted Array
water class Solution { public: int removeDuplicates(vector<int>& nums) { for(vector<int ...