2014-12-27 56 views

回答

9
string s = "This is string"; 
s = s.Remove(2, 1); 

输出:Ths is string

1st parameter是要删除的性格和第二个参数的starting index是要删除

number of character
0

你可以使用这个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); 
1

你可以使用正则表达式也。

Console.WriteLine(Regex.Replace("This is string", @"(?<=^.{2}).", "")); 

这将从一开始就删除第三个字符。

DEMO

+0

对于这种情况,正则表达式是矫枉过正的。 – 2014-12-27 16:41:35

+0

同意正则表达式是一种矫枉过正。我认为欧普正在寻求可能性。 – 2014-12-27 16:44:35

+1

...好的是,这对我认为几乎所有的编程语言都有效。我不知道它太酷了,你也发布了这个可能性。 – t3chb0t 2014-12-27 17:31:39

5

正如许多人说过,有一个Remove方法。其他文章没有解释的是C#中的字符串是不可变的 - 你不能改变它们。

当您拨打Remove时,它实际上会返回一个新字符串;它不会修改现有的字符串。您需要确保抓取Remove的输出并将其分配给一个变量或将其返回...仅仅调用Remove就不会更改该字符串。