Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 删除C中字符串中的字符#_C# - Fatal编程技术网

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

C# 删除C中字符串中的字符#,c#,C#,我有以下字段正在调用数据库电话号码。当显示号码时,我想删除1- 因此,我不想显示1-############,而是想显示########### 我尝试了以下方法: string x= Phone_Number; x.Remove(0,1); Response.Write(x); 但是,它会一直显示1-####-#-#-##-### 我做错了什么?字符串在C#中是不可变的-调用不会修改原始字符串。它创建新字符串,删除其中的指定字符并返回该字符串。您应该显示此方法调用的结果: Response.W

我有以下字段正在调用数据库
电话号码
。当显示号码时,我想删除
1-

因此,我不想显示
1-############
,而是想显示
###########

我尝试了以下方法:

string x= Phone_Number;
x.Remove(0,1);
Response.Write(x);
但是,它会一直显示
1-####-#-#-##-###

我做错了什么?

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

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


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


另一种方法是:

if (x.StartsWith("1-")
    x = x.Remove(0,2);
如果您获得的电话号码没有前导的
1-
,则此功能的好处是什么也不做


感谢commenter指出我的错误。

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

var x=电话号码


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

警告:如果电话号码再次出现
1-
,该怎么办?
x = x.Remove(0,1)
if (x.StartsWith("1-")
    x = x.Remove(0,2);