问题:我想在手机中添加字符。
所以我没有显示### - ### - ####,而是要显示(###)### - ####。
我尝试了以下内容:
string x = "Phone_Number";
string y = x.Remove(0,2);//removes the "1-"
string z = y.Insert(0,"(");
z = z.Insert(4,")");
从这里开始,我不确定如何删除第一个" - "所以它显示以下内容:(###)### - ####
任何帮助都将不胜感激。
答案 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)}";