从特定索引中删除字符串中的字符
本文关键字:字符串 字符 删除 索引 | 更新日期: 2023-09-27 18:35:28
例如,C# 中是否有任何函数可以从特定索引上的字符串中删除
string s = "This is string";
s.RemoveAt(2);
s 现在是"Ths 是字符串"
???
string s = "This is string";
s = s.Remove(2, 1);
输出 : Ths is string
1st parameter
是要从中删除字符的starting index
,第二个参数是要删除的number of character
正如许多其他人所说,有一种Remove
方法。其他帖子没有解释的是,C# 中的字符串是不可变的——你不能改变它们。
当你调用Remove
时,它实际上返回一个新字符串;它不会修改现有的字符串。您需要确保获取Remove
的输出并将其分配给变量或返回它......仅自行调用Remove
不会更改字符串。
您可以使用 Remove 方法为此编写 on 扩展:
public static class MyStringExtensions
{
public static string RemoveAt(this string s, int index)
{
return s.Remove(index, 1);
}
}
用法:
string s = "This is string";
s = s.RemoveAt(2);
您也可以
使用正则表达式。
Console.WriteLine(Regex.Replace("This is string", @"(?<=^.{2}).", ""));
这将从开头删除第三个字符。
演示
有String.Remove
方法:
s = s.Remove(2, 1);
就像人们提到的那样,字符串在 c# 中是不可变的,因此您需要再次编辑和分配,如下所示:
string myString = "mon, ";
// Before it was mon,
myString = myString.Remove(3, 2);
// After it is mon
Remove() 的第一个参数是开始删除的位置,第二个参数是要删除的字符数(包括)。
参考: https://learn.microsoft.com/en-us/dotnet/api/system.string.remove?view=net-7.0