> 文章列表 > C# Replace()、Trim()、Split()、Substring()、IndexOf() 、 LastIndexOf()函数

C# Replace()、Trim()、Split()、Substring()、IndexOf() 、 LastIndexOf()函数

C# Replace()、Trim()、Split()、Substring()、IndexOf() 、 LastIndexOf()函数

目录

一、Replace()

二、Trim()

三、Split()

四、Substring()

五、IndexOf()

六、LastIndexOf()


一、Replace()

在C#中,Replace()是一个字符串方法,用于将指定的字符或子字符串替换为另一个字符或字符串。下面是一些Replace()方法的常见用法和示例代码:

  1. 将字符串中的一个字符替换为另一个字符
    string original = "Hello World";
    string replaced = original.Replace('o', '0');
    Console.WriteLine(replaced); // 输出: Hell0 W0rld
    

    可以使用 Replace() 方法删除空格                                                                                             使用 String.Replace() 方法 ,将空格替换为空字符串:

    string str = " This is a string with spaces. ";
    str = str.Replace(" ", "");
    Console.WriteLine(str);
    

    可删掉所有空格                                                                                                                        

  2. 将字符串中的一个子字符串替换为另一个字符串
    string original = "The quick brown fox jumps over the lazy dog";
    string replaced = original.Replace("fox", "cat");
    Console.WriteLine(replaced); // 输出: The quick brown cat jumps over the lazy dog
    
  3. 在字符串中使用正则表达式替换匹配的内容
    string original = "Hello, World!";
    string replaced = Regex.Replace(original, "[aeiou]", "*");
    Console.WriteLine(replaced); // 输出: H*ll*, W*rld!
    

    在这个例子中,使用正则表达式 [aeiou] 匹配字符串中的任何一个元音字母,并用 * 替换匹配的内容。

    需要注意的是,Replace()方法返回一个新的字符串,而不是修改原始字符串。

二、Trim()

C#中的Trim()方法用于移除字符串的开头和结尾处的空白字符,包括空格、制表符和换行符等。它返回一个新的字符串,该字符串是原始字符串的副本,但是开头和结尾的空白字符已被移除。

下面是一些使用Trim()方法的示例:

string str1 = "   Hello World!   ";
string str2 = "\\t\\tHello World!\\t\\t";
string str3 = "\\n\\nHello World!\\n\\n";// 使用Trim方法移除开头和结尾处的空白字符
string trimmed1 = str1.Trim();
string trimmed2 = str2.Trim();
string trimmed3 = str3.Trim();Console.WriteLine(trimmed1); // "Hello World!"
Console.WriteLine(trimmed2); // "Hello World!"
Console.WriteLine(trimmed3); // "Hello World!"

在上面的示例中,我们定义了三个包含空白字符的字符串,分别使用Trim()方法来移除它们开头和结尾处的空白字符。在输出结果中,我们可以看到移除空白字符后的字符串。

除了Trim()方法之外,C#中还有其他几个类似的方法,如TrimStart()和TrimEnd()。TrimStart()方法用于移除字符串开头处的空白字符,而TrimEnd()方法用于移除字符串结尾处的空白字符。这些方法也返回一个新的字符串,该字符串是原始字符串的副本,但是指定位置的空白字符已被移除。

三、Split()

C#中的Split()方法用于将一个字符串按照指定的分隔符拆分成一个字符串数组。它可以接受一个或多个分隔符,并且可以指定是否忽略空白项。

下面是一些使用Split()方法的示例:

string str = "apple,banana,orange";// 使用逗号分隔字符串,并将结果保存到字符串数组中
string[] arr1 = str.Split(',');// 输出数组中的每个元素
foreach (string item in arr1)
{Console.WriteLine(item);
}// 使用多个分隔符
string str2 = "apple|banana-orange";
string[] arr2 = str2.Split(new char[] { '|', '-' });// 输出数组中的每个元素
foreach (string item in arr2)
{Console.WriteLine(item);
}// 忽略空白项
string str3 = "apple,banana,,orange";
string[] arr3 = str3.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);// 输出数组中的每个元素
foreach (string item in arr3)
{Console.WriteLine(item);
}

上述示例运行后的结果如下:

apple
banana
orange
apple
banana
orange
apple
banana
orange

第一个示例将原始字符串按逗号分隔成了3个字符串,分别是"apple"、"banana"和"orange",然后将它们输出到控制台。

第二个示例将原始字符串按照'|'和'-'两个分隔符分隔成了3个字符串,同样将它们输出到控制台。

第三个示例在原始字符串中增加了一个空白项,并使用了StringSplitOptions.RemoveEmptyEntries选项来忽略空白项,最终得到的结果与第一个示例相同。

在上面的示例中,我们首先定义了一个包含多个水果名称的字符串,然后使用逗号分隔符将其拆分为一个字符串数组。接下来,我们演示了如何使用多个分隔符,并忽略空白项。

需要注意的是,Split()方法返回的是一个字符串数组。如果原始字符串中不包含分隔符,则Split()方法会返回一个只包含原始字符串的字符串数组。

四、Substring()

C#中的Substring()方法用于从一个字符串中提取指定长度的子字符串。它有两个重载版本,一个接受一个起始索引和一个长度作为参数,另一个接受一个起始索引并返回从该索引开始到字符串的末尾的所有字符。

下面是一些使用Substring()方法的示例:

string str = "Hello, world!";// 从索引6开始提取3个字符
string sub1 = str.Substring(6, 3);
Console.WriteLine(sub1); // "wor"// 从索引7开始提取到字符串末尾的所有字符
string sub2 = str.Substring(7);
Console.WriteLine(sub2); // "world!"

在上面的示例中,我们首先定义了一个包含"Hello, world!"的字符串。然后,我们使用Substring()方法从索引6开始提取3个字符,并将结果保存到sub1字符串变量中。接下来,我们使用Substring()方法从索引7开始提取到字符串末尾的所有字符,并将结果保存到sub2字符串变量中。最后,我们将这两个子字符串输出到控制台。

需要注意的是,Substring()方法返回的是一个新的字符串,原始字符串并没有被修改。如果指定的起始索引超出了字符串的范围,或者指定的长度超出了从起始索引开始到字符串结尾的字符数,Substring()方法将抛出一个ArgumentOutOfRangeException异常。

五、IndexOf()

C#中的IndexOf()方法用于在字符串中查找指定的字符或子字符串,并返回第一次出现的位置索引。它有多个重载版本,可以指定查找的起始索引、查找方向等参数。

下面是一些使用IndexOf()方法的示例:

string str = "The quick brown fox jumps over the lazy dog.";// 查找字符串"fox"第一次出现的位置
int index1 = str.IndexOf("fox");
Console.WriteLine(index1); // 16// 从索引20开始查找字符串"fox"第一次出现的位置
int index2 = str.IndexOf("fox", 20);
Console.WriteLine(index2); // -1// 从索引20开始向前查找字符串"fox"第一次出现的位置
int index3 = str.IndexOf("fox", 20, StringComparison.CurrentCultureIgnoreCase);
Console.WriteLine(index3); // 16

在上面的示例中,我们首先定义了一个包含"The quick brown fox jumps over the lazy dog."的字符串。然后,我们使用IndexOf()方法查找字符串"fox"第一次出现的位置,并将结果保存到index1变量中。接下来,我们使用IndexOf()方法从索引20开始查找字符串"fox"第一次出现的位置,并将结果保存到index2变量中。由于"fox"不在从索引20开始的子字符串中出现,所以返回值为-1。最后,我们使用IndexOf()方法从索引20开始向前查找字符串"fox"第一次出现的位置,并将结果保存到index3变量中。由于字符串"fox"在从索引16开始的子字符串中出现,所以返回值为16。

需要注意的是,IndexOf()方法返回第一次出现的位置索引,如果字符串中不存在指定的字符或子字符串,将返回-1。此外,IndexOf()方法默认区分大小写,如果要进行不区分大小写的查找,可以使用StringComparison.OrdinalIgnoreCase或StringComparison.CurrentCultureIgnoreCase等参数。

六、LastIndexOf()

C#中的LastIndexOf()方法与IndexOf()方法类似,也是用于在字符串中查找指定的字符或子字符串,并返回最后一次出现的位置索引。它同样有多个重载版本,可以指定查找的起始索引、查找方向等参数。

下面是一些使用LastIndexOf()方法的示例:

string str = "The quick brown fox jumps over the lazy dog.";// 查找字符串"fox"最后一次出现的位置
int index1 = str.LastIndexOf("fox");
Console.WriteLine(index1); // 16// 从索引20开始向前查找字符串"fox"最后一次出现的位置
int index2 = str.LastIndexOf("fox", 20);
Console.WriteLine(index2); // -1// 从索引20开始向前查找字符串"fox"最后一次出现的位置
int index3 = str.LastIndexOf("fox", 20, StringComparison.CurrentCultureIgnoreCase);
Console.WriteLine(index3); // 16

在上面的示例中,我们使用了LastIndexOf()方法查找字符串"fox"最后一次出现的位置,并分别指定了不同的起始索引和查找方向参数。其余的使用方法与IndexOf()方法类似。

需要注意的是,LastIndexOf()方法返回最后一次出现的位置索引,如果字符串中不存在指定的字符或子字符串,将返回-1。此外,LastIndexOf()方法默认区分大小写,如果要进行不区分大小写的查找,可以使用StringComparison.OrdinalIgnoreCase或StringComparison.CurrentCultureIgnoreCase等参数。