我有以下字段调用数据库Phone_Number
。我希望在显示号码时删除1-
。
因此,我想显示1-###-###-####
。
###-###-####
我尝试了以下内容:
string x= Phone_Number;
x.Remove(0,1);
Response.Write(x);
但是,它会一直显示1-###-###-####
。
我做错了什么?
答案 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;