您的位置:

C#字符串截取详解

一、Substring函数

Substring函数是C#语言中用于截取字符串的函数,它的基本语法如下:

string Substring(int startIndex, int length);

其中startIndex表示截取的起始位置,length表示需要截取的长度。例如:

string str = "Hello World";
string subStr = str.Substring(6, 5); //subStr = "World"

可以看出,subStr的值为"World",这是因为截取的起始位置为6(从0开始计数,表示W的下标),需要截取的长度为5(Worl)。需要注意的是,如果startIndex+length超过字符串的长度,会引发ArgumentOutOfRangeException异常。

除此之外,Substring函数还有一个重载方法:

string Substring(int startIndex);

这个方法的作用是从startIndex开始截取到字符串的末尾,例如:

string str = "Hello World";
string subStr = str.Substring(6);
//subStr = "World"

二、Split函数

Split函数是C#语言中用于将一个字符串按照指定分隔符分割为多个子字符串的函数。它的基本语法如下:

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

其中separator表示分隔符,可以是单个字符,也可以是多个字符组成的数组。例如:

string str = "apple,banana,orange";
string[] arr = str.Split(',');
//arr = ["apple", "banana", "orange"]

也可以使用特定的分隔符数组:

string str = "apple||banana||orange";
char[] separator = {'|', '|'};
string[] arr = str.Split(separator);
//arr = ["apple", "banana", "orange"]

需要注意的是,如果字符串中不存在分隔符,则Split函数会将整个字符串作为单个元素返回。

三、Remove函数

Remove函数是C#语言中用于删除字符串中指定字符或子字符串的函数,它的基本语法如下:

string Remove(int startIndex, int count);

其中startIndex表示删除的起始位置,count表示需要删除的长度。例如:

string str = "Hello World";
string newStr = str.Remove(5, 1);
//newStr = "Helloorld"

可以看出,newStr的值为"Helloorld",这是因为删除了原字符串中的第6个字符(空格),需要注意的是,如果startIndex+count超过字符串的长度,会引发ArgumentOutOfRangeException异常。

除此之外,Remove函数还有一个重载方法:

string Remove(int startIndex);

这个方法的作用是从startIndex开始删除到字符串的末尾,例如:

string str = "Hello World";
string newStr = str.Remove(5);
//newStr = "Hello"

四、Replace函数

Replace函数是C#语言中用于替换字符串中指定字符或子字符串为另一个字符串的函数,它的基本语法如下:

string Replace(string oldValue, string newValue);

其中oldValue表示被替换的字符串,newValue表示替换成的新字符串。例如:

string str = "I like programming";
string newStr = str.Replace("programming", "coding");
//newStr = "I like coding"

需要注意的是,如果被替换的字符串不存在于原字符串中,则不会发生任何变化。

五、Substring、Split、Remove、Replace函数的综合应用

以上函数可以结合使用,达到更加高效的处理字符串的目的。例如,将一个包含多个日期的字符串截取、分割、去重、替换,可以如下实现:

string str = "2022-01-01,2022-01-01,2022-01-02,2022-01-03";
string subStr = str.Substring(11); //subStr = "2022-01-01,2022-01-02,2022-01-03"
string[] arr = subStr.Split(','); //arr = ["2022-01-01", "2022-01-02", "2022-01-03"]
arr = arr.Distinct().ToArray(); //arr = ["2022-01-01", "2022-01-02", "2022-01-03"]
string newStr = string.Join(";", arr); //newStr = "2022-01-01;2022-01-02;2022-01-03"
newStr = newStr.Replace("-", "."); //newStr = "2022.01.01;2022.01.02;2022.01.03"

以上代码完成的功能是:截取了字符串中的日期部分,分隔为多个子字符串,去重,替换日期的分隔符。