C#中是否有任何函数从特定索引上的字符串中删除,例如
string s = "This is string";
s.RemoveAt(2);
现在是" Ths是字符串"
???
答案 0 :(得分:14)
string s = "This is string";
s = s.Remove(2, 1);
输出:Ths is string
1st parameter
是您要删除字符的starting index
,第二个参数是您要删除的number of character
答案 1 :(得分:7)
正如其他许多人所说,有一种Remove
方法。其他帖子没有解释的是C#中的字符串是不可变的 - 你无法改变它们。
当您致电Remove
时,它实际上会返回新字符串;它不会修改现有的字符串。您需要确保获取Remove
的输出并将其分配给变量或将其返回...只是单独调用Remove
不会更改字符串。
答案 2 :(得分:2)
您可以使用Remove方法为此编写扩展程序:
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);
答案 3 :(得分:1)
您也可以使用正则表达式。
Console.WriteLine(Regex.Replace("This is string", @"(?<=^.{2}).", ""));
这会从头开始删除第三个字符。
答案 4 :(得分:0)
有String.Remove
方法:
s = s.Remove(2, 1);