字符和字符串

字符类

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#从入门到精通》读后总结

 

posted @ 2016-03-03 22:48  我不是大佬  阅读(251)  评论(0编辑  收藏  举报