字符和字符串
字符类
Char在C#中表示一个Unicode字符,正是这些Unicode字符构成了字符串。Unicode字符是目前计算机中通用的字符编码,它为针对不同语言中的每个字符设定了统一的进制编码,用于满足跨语言、跨平台的文本转换、处理的要求。
char ch1 = ‘L’;
1.Char类的常用方法及说明:
IsControl:是否属于控制字符类别。
IsDigit:是否属于十进制数字类别。
IsHighSurrogate:是否为高代理项。
IsLetter:是否属于字母类别。
IsLetterOrDigit:是否属于字母或者十进制数字类别。
IsLower:是否属于小写字母类别。
IsLowSurrogate:是否为低代理项。
IsNumber:是否属于数字类别。
IsPunctuation:是否属于标点符号类别。
IsSeparator:是否属于分隔符类别。
IsSurrogatePair:是否形成代理项对。
IsSymbol:是否属于符号字符类别。
IsUpper:是否属于大写字母类别。
IsWhiteSpace:是否属于空白类被。
Parse:将指定字符串的值转换为它的等效Unicode字符。
ToLower:转换成小写。
ToLowerInvariant:使用固定区域性的大小写规则,将Unicode字符的值转换为其小写等效项。
ToString:转换成字符串。
ToUpper:转换成大写。
ToUpperInvariant:使用固定区域性的大小写规则,将Unicode字符的值转换为其大写等效项。
TryParse:将指定字符串的值转换为它的等效Unicode字符。
2.转义字符
转义字符\(单个反斜杠)只针对后面紧跟着的单个字符进行操作。
\n:回车换行
\t:横向跳到下一制表位置
\v:竖向跳格
\b:退格
\r:回车
\f:换页
\\:反斜线符
\’ :单引号符
\ddd:1-3位八进制数所代表的字符
\xhh:1-2位十六进制所代表的字符
String类
1.比较字符串
1).Compare方法
比较两个字符串是否相等:
Int Compare(string strA, string strB);
Int Compare(string strA, string strB ,bool ignorCase);
注:比较字符串在英文字典中的位置。
2).CompareTo方法
以实例对象本身与指定的字符串作比较是否相同。
strA.CompareTo(strB);
3).Equals方法
Equals方法执行顺序(区分大小写和区域性)比较。
strA.Equals(strB);
String.Equals(strA, strB);
2.格式化字符串
Public static string Fromat(string format, object obj);
format:用来指定字符串所要格式化的形式。
obj:要被格式化的对象。
例如:
String.Format(“{0},{1}!!!”, strA, strB);
String.Format(“{0:D}”, dt);
格式规范 说明
d 简短日期格式(YYYY-MM-dd)
D 完整日期格式(YYYY年MM月dd日)
t 简短时间格式(hh:mm)
T 完整时间格式(hh:mm:ss)
f 简短的日期/时间格式(YYYY年MM月dd日 hh:mm)
F 完整的日期/时间格式(YYYY年MM月dd日 hh:mm:ss)
g 简短的可排序的日期/时间格式(YYYY-MM-dd hh:mm)
G 完整的可排序的日期/时间格式(YYYY-MM-dd hh:mm:ss)
M/m 月/日格式(MM月dd日)
Y/y 年/月格式(YYYY年MM月)
3.截取字符串
strA.Substring(1, 4);
4.分割字符串
public string[] Split(params char[] separator);
5.插入和填充字符串
public string Insert(int startIndex, string value)
public sting PadLeft(int totalWidth, char paddingChar)
totalWidth:指定填充后的字符长度
paddingChar:指定所要填充的字符,如果省略,则填充空格符号
6.删除字符串
Public string Remove(int startIndex);
Public string Remove(int startIndex, int count);
7.复制字符串
Public static string Copy(string str);
Public void CopyTo(int sourceIndex, char[] destination, int destinationIdex, int count);
strA.CopyTo(1, str, 0, 4);
8.替换字符串
Public string Replace(char oChar, char nChar);
Public string Replace(string oValue, string nValue);
Sting strA = strB.Replace(“代替换的”, “替换后新的”)
StringBuilder类
类表示值为可变字符序列的类似字符串的对象。之所以说值是可变,是因为在通过追加、移除、替换和插入字符而创建它可以对它进行修改。
1.StringBuilder类中的常用方法及说明:
Append:将文本或字符串追加到指定对象的末尾。
stringBuilder.Append(“aaaa”);
AppendFormat:自定义变量的格式并将这些值追加到StringBuilder对象末尾。
stringBuilder. AppendFormat(“{0:C}”, Num);
Insert:将字符串或对象添加到当前StringBuilder对象中的指定位置。
stringBuilder. Insert(0, “名称:”);
Remove:从当前StringBuilder对象中移除指定数量的字符。
stringBuilder. Remove(15, stringBuilder.Length-15);
Replace:用另一个指定的字符来替换StringBuilder对象内的字符。
stringBuilder. Replace(““代替换的””, “替换后新的”);
2.StringBuilder类与String类的区别
如果要操作一个不断增长的字符串,尽量不用String类,改用StringBuilder类。
两个类的工作原理不同:String类是一种传统的修改字 符串的方式,它确实可以完成把一个字符串添加到另一个字符串上的工作没错,但是在.NET框架下,这个操作实在是划不来。因为系统先是把两个字符串写入内 存,接着删除原来的String对象,然后创建一个String对象,并读取内存中的数据赋给该对象。这一来二去的,耗了不少时间。而使用 System.Text命名空间下面的StringBuilder类就不是这样了,它提供的Append方法,能够在已有对象的原地进行字符串的修改,简 单而且直接。当然,一般情况下觉察不到这二者效率的差异,但如果你要对某个字符串进行大量的添加操作,那么StringBuilder类所耗费的时间和 String类简直不是一个数量级的。
《C#从入门到精通》读后总结