从特定索引中删除字符串中的char

时间:2014-12-27 16:11:15

标签: c# string

C#中是否有任何函数从特定索引上的字符串中删除,例如

string s = "This is string";

s.RemoveAt(2);
现在是" Ths是字符串"

???

5 个答案:

答案 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}).", ""));

这会从头开始删除第三个字符。

DEMO

答案 4 :(得分:0)

String.Remove方法:

s = s.Remove(2, 1);