欢迎光临散文网 会员登陆 & 注册

【回顾】C#从入门到精通第五章笔记

2021-03-16 18:14 作者:陪看书的小白  | 我要投稿

C#从入门到精通(第五版)第五章笔记

字符与字符串

1.Char类概述

Char类主要用来存储单个字符,占16位(两个字节)的内存空间。

在定义字符型变量时,要以单引号表示,如‘s’表示一个字符。而“s”表示一个字符串。

注意:

Char只定义一个Unicode字符。

2.Char类的使用

Char类为开发人员提供了许多的方法。

char类方法

可以看到Char提供了非常多的实用方法,其中以Is和To开头的比较重要。

①.以Is开头的方法大多是判断Unicode字符是否为某个类别,

②.以To开头的方法主要是转换为其他Unicode字符。

3.转义字符

转义字符是一种特殊的字符变量。其以反斜线“\”开头,后跟一个或多个字符。转义字符具有特定的含义、不同于字符原有的意义,故称“转义"。

注意:转义符“\”(单个反斜杠)只针对后面紧跟着的单个字符进行操作。

转移字符

4.字符串类String类的使用

字符串必须包含在一对双引号之内:

例如:“23.23”,“ABCDE”,“你好"

这些都是字符串常量,字符串常量是系统能够显示的任何文字信息,甚至单个字符。

赋值方式:

string str = [ null ];          

string:字符串类型

str:字符串名称

[ null ]:字符串值

5.String类的连接多个字符串

使用“+”运算符可完成对多个字符串连接的功能。“+”运算符可以连接多个字符串并产生一个String对象。

6.String类的比较字符串,Compare、CompareTo和Equals方法

在C#中最常见的比较字符串的方法有Compare、CompareTo和Equals等,这些方法都归属于String类。下面对这3种方法进行详细介绍。

(1).Compare方法:

Compare方法用来比较两个字符串是否相等,它有很多个重载方法,其中最常用的两种方法如下:

Int Compare(string strA,string strB)

Int Compare(string strA,string strB,bool ignorCase)

①.strA和strB:代表要比较的两个字符串。

②.ignorCase:是一个布尔类型的参数,如果这个参数的值是true,那么在比较字符串时就忽略大小写的差别。Compare方法是一个静态方法,所以在使用时,可以直接引用。

例如:

static void Main(string[] args)

{

string Str1="芸烨湘枫”;//声明一个字符串Str1

string Str2="用一生下载你";//声明一个字符串Str2

Console.WriteLine(String.Compare(Str1,Str2));//输出字符串Str1与Str2比较后的返回值

Console.WriteLine(String.Compare(Str1,Str1);//输出字符串Str1与Str1比较后的返回值

Console.WriteLine(String.Compare(Str2,Str1);//输出字符串Str2与Str1比较后的返回值

Console.ReadLine();

}

程序的运行结果为:

1

0

-1

(2).CompareTo 方法:

CompareTo方法与Compare方法相似,都可以比较两个字符串是否相等,不同的是CompareTo方法以实例对象本身与指定的字符串作比较,其语法如下:

public int Compare To(string strB)

例如:

代码如下:

stra.Compare To(strb)

再例如:

代码如下:

static void Main(string[] args)

{

string Str1="芸烨湘枫”;

string Str2="用一生下载你";

Console.WriteLine(Str1.CompareTo(Str2);

Console.ReadLine();

}

输出1

(3).Equals方法

Equals方法主要用于比较两个字符串是否相同,如果相同返回值是true,否则为false。其常用的两种方式的语法如下:

public bool Equals(string value)

public static bool Equals(string a,string b)

①.value:是与实例比较的字符串。

②.a和b:是要进行比较的两个字符串。

例如:

static void Main(string[] args)

{

string Str1="芸烨湘枫”;

string Str2="用一生下载你";

Console.WriteLine(Str1.Equals(Str2));

Console.WriteLine(String.Equals(Str1,Str2));

Console.ReadLine();

}

程序的运行结果为:

False

False

7.格式化字符串

在C#中,String类提供了一个静态的Format方法,用于将字符串数据格式化成指定的格式。其语法格式如下:

Public static string Format(string format,object obj);

①.format:用来指定字符串所要格式化的形式。

②.obj:要被格式化的对象。

例如:

static void Main(string[] args)

{

string StrA="用一生下载你";

string StrB="永不放弃";

string newstr=String.Format("{0},{1}!",StrA,StrB);

Console.WriteLine(newstr);

Console.ReadLine();

}

程序的运行结果为“用一生下载你,永不放弃!!!”。

如果希望日期时间按照某种格式输出,那么可以使用Format方法将日期时间格式化成指定的格式。

在C#中,已经提供了一些用于日期时间的格式规范,具体描述如表5.3所示。

日期格式规范

例如:

static void Main(string[] args)

{

DateTime dt=Date Time.Now;

string strB=String.Format("{0:D}",dt);

Console.WriteLine(strB);

Console.ReadLine();

}

程序的运行结果为“2012年2月22日”。

8.截取字符串,Substring方法

String类提供了一个Substring方法,该方法可以截取字符串中指定位置和指定长度的字符。其语法格式如下:

public string Substring(int startindex,int length)

①. startlndex:子字符串的起始位置的索引。

②.length:子字符串中的字符数。

例如:

static void Main(string[] args)

{

string StrA="用一生下载你";

string StrB="";StrB=StrA.Substring(1,4);

Console.WriteLine(StrB);

Console.ReadLine();

}

程序的运行结果为“一生下载”。

注意:

在用Substring方法截取字符串时,如果length参数的长度大于截取字符串的长度,将从起始位置的索引处截取之后的所有字符。

9.分割字符串,Split方法

String类提供了一个Split方法,用于分割字符串。该方法的返回值是包含所有分割子字符串的数组对象,可以通过数组取得所有分割的子字符串。其语法格式如下:

public string[]Split(params char[]separator);


separator:是一个数组,包含分隔符。


例如:

static void Main(string[] args)

{

string StrA="用“一生#下载,你";

char[]separator={'^',"#",','};

String[]splitstrings=new String[100];

splitstrings=StrA.Split(separator);

          for(inti=0;i< splitstrings.Length;i++)

          {

         Console.WriteLine("item{0}:{1}",i,splitstrings[i]);

          }

Console.ReadLine();

}

程序的运行结果为:

item0:用

item1:一生

item2:下载

item3:你

10.插入字符串,Insert方法

String类提供了一个Insert方法,用于向字符串的任意位置插入新元素。其语法格式如下:

public string Insert(int startlndex,string value);

①.startIndex:用于指定所要插入的位置,索引从0开始。

②.value:指定所要插入的字符串。

例如:

static void Main(string[] args)

{

string str1="下载";

string str2;

str2=str1.Insert(0,"用一生");

string str3=str2.Insert(5,"你");

Console.WriteLine(str3);

Console.ReadLine();

}

程序的运行结果为“用一生下载你”。



11.填充字符串,PadLeft(),PadRight方法

String类提供了PadLeft/PadRight方法用于填充字符串,PadLeft方法在字符串的左侧进行字符填充,而PadRight方法在字符串的右侧进行字符填充。PadLeft方法的语法格式如下:

public string PadLeft(int totalWidth,char paddingChar)

①.totalWidth:指定填充后的字符长度。

②.paddingChar:指定所要填充的字符,如果省略,则填充空格符号。

12.删除字符串,Remove方法

String类提供了一个Remove方法,用于从一个字符串的指定位置开始,删除指定数量的字符。其语法格式如下:

Public String Remove(int startlndex);

Public String Remove(int startlndex,int count);

①.startIndex:用于指定开始删除的位置,索引从0开始。

②.count:指定删除的字符数量。

例如:

代码如下:

static void Main(string[] args)//Main方法

{

string str1="用一生下载你";//声明一个字符串变量str1

//声明一个字符串变量str2,并使用Remove 方法从字符串str1的索引3处开始删

string str2=str1.Remove(3);

Console.WriteLine(str2);//输出字符串str2

Console.ReadLine();程序的运行结果为“用一生”。

}

程序的运行结果为“用一生”。


下面再通过实例演示如何使用Remove方法的第二种语法格式。

例如:

代码如下:

static void Main(stringl args)/Main方法

{

string str1=“芸烨湘枫”;

/声明一个字符串变量str1,并初始化

//声明一个字符串变量str2,并使用Remove方法从字符串str1的索引1处开始删除两个字

string str2=str1.Remove(1,2);

Console.WriteLine(str2);//输出字符串str2

Console.ReadLine();程序的运行结果为“芸枫”。

13.删除字符串,Copy方法和CopyTo方法

String类提供了Copy和CopyTo方法,用于将字符串或子字符串复制到另一个字符串或Char类型的数组中。

1.Copy方法

该方法用于创建一个与指定的字符串具有相同值的字符串的新实例。其语法格式如下:

①.str:是要复制的字符串。

②.返回值:与str具有相同值的字符串。

例如:

string stra="芸烨湘枫”;

string strb;

/使用String类的Copy方法,复制字符串stra 并赋值给strb 

strb=String.Copy(stra);

Console.WriteLine(strb);

Console.ReadLine();


程序的运行结果为“芸烨湘枫”。


2.CopyTo方法

CopyTo方法的功能与Copy方法基本相同,但是CopyTo方法可以将字符串的某一部分复制到另个数组中。其语法格式如下:

Public void Copy To(int sourcelndex,char[]destination,int destinationlndex,int count);

代码如下:

static void Main(stringll args)

string str1="用一生下载你";

//声明一个字符串变量str1并初始化char]str=new char[100];//声明一个字符数组 str

//将字符串str从索引1开始的4个字符串复制到字符数组str中str1.CopyTo(1,str,0,4);Console.WriteLine(str);//输出字符数组中的内容Console.ReadLine();

}

14.代替字符串,Replace方法

String类提供了一个Replace方法,用于将字符串中的某个字符或字符串替换成其他的字符或字符串。其语法格式如下:

public string Replace(char OChar,char NChar)

public string Replace(string OValue,string NValue)

Replace方法

15.可变字符串类StringBuilder的使用

StringBuilder类有6种不同的构造方法,本节只介绍最常用的一种,其语法格式如下:

public StringBuilder(string value,int cap)

①.value:StringBuilder对象引用的字符串。

②.cap:设定StringBuilder对象的初始大小。

创建一个StringBuilder对象,其初始引用的字符串为“Hello World!”。

代码如下:

StringBuilder MyStringBuilder = new StringBuilder("Hello World!");

注意:

StringBuilder类存在于System.Text命名空间中,如果要创建 StringBuilder对象,首先必须引用此命名空间。StringBuilder类中的常用方法及说明如表所示。

StringBuilder方法

16.StringBuilder 类与String类的区别

它们各自的利弊。

String对象是不可改变的,每次使用String类中的方法时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间。

在需要对字符串执行重复修改的情况下,与创建新的String对象相关的系统开销可能会非常昂贵。

如果要修改字符串而不创建新的对象,则可以使用StringBuilder类。

例如,当在一个循环中将许多字符串连接在一起时,使用StringBuilder类可以提升性能。





第五章完!


【回顾】C#从入门到精通第五章笔记的评论 (共 条)

分享到微博请遵守国家法律