在字符串中添加和删除字符

时间:2017-06-21 22:42:01

标签: c#

问题:我想在手机中添加字符。

所以我没有显示### - ### - ####,而是要显示(###)### - ####。

我尝试了以下内容:

string x = "Phone_Number";
string y = x.Remove(0,2);//removes the "1-"
string z = y.Insert(0,"(");
z = z.Insert(4,")");

从这里开始,我不确定如何删除第一个" - "所以它显示以下内容:(###)### - ####

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:1)

按照您的逻辑,您可以添加:

z = z.Remove(5,1);
z = z.Insert(5," ");

请注意,您不必为每个步骤声明一个新变量。只需像我一样重复使用相同的变量。

但是,你可以用不同的方式完成整个事情。您可以在连字符“ - ”上拆分字符串,并根据需要将它们连接起来:

string x = "Phone_Number";
string[] xx = x.Split("-");
x = "(" + xx[1] + ") " + xx[2] + "-" xx[3];

我忽略了xx[0],因为您似乎不希望第一部分“1 - ”。

答案 1 :(得分:1)

如果您想将任何数字转换为(###) - ### - ##########格式,我建议使用以下代码段:

string x = "123-456-7890";
x = Regex.Replace(x, @"[^0-9]", "");
x = $"({x.Substring(0, 3)})-{x.Substring(3, 3)}-{x.Substring(6)}";

编辑:为了确保“较小”的数字有效,以下内容确保1-6个字符也能正常工作(替换上一部分的最后一行):

if(x.Length <= 3)
  x = $"({x.Substring(0)})";
else if(x.Length <= 6)
  x = $"({x.Substring(0, 3)})-{x.Substring(3)}";
else
  x = $"({x.Substring(0, 3)})-{x.Substring(3, 3)}-{x.Substring(6)}";