删除C#中字符串中的字符

时间:2017-06-12 22:04:28

标签: c#

我有以下字段调用数据库Phone_Number。我希望在显示号码时删除1-

因此,我想显示1-###-###-####

,而不是显示###-###-####

我尝试了以下内容:

string x= Phone_Number;
x.Remove(0,1);
Response.Write(x);

但是,它会一直显示1-###-###-####

我做错了什么?

4 个答案:

答案 0 :(得分:4)

字符串在C#中是不可变的 - String.Remove调用不会修改原始字符串。它创建新字符串,其中删除指定的字符并返回它。您应该显示此方法调用的结果:

Response.Write(x.Remove(0,2)); // you should remove 2 characters

Response.Write(x.Substring(2));

答案 1 :(得分:2)

您需要将结果设置为x。字符串在C#中是不可变的:

x = x.Remove(0,1)

答案 2 :(得分:2)

另一种方法是:

if (x.StartsWith("1-")
    x = x.Remove(0,2);

如果您获得的电话号码没有前导1-,则无需执行任何操作。

感谢评论员指出我的错误。

答案 3 :(得分:1)

如您所见,有太多方法可以从字符串中删除子字符串。您还可以使用的一种新方法是正则表达式,以防您要删除的值在将来具有复杂模式。

var x = phoneNumber;

var result = Regex.Match(x,@“^(1 - )?(。*)$”)。Groups [2] .Value;