2017-06-21 60 views
-3

問題:我想添加字符到手機中。添加和刪除字符串中的字符

因此,而不是顯示### - ### - ####,我想顯示(###)### - ####。

我試過如下:

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

從這裏,我不知道我怎麼會刪除第一個「 - 」,因此它顯示以下內容:(###)### - ### #

任何幫助,將不勝感激。

+0

使用'的String.format()'方法。它接受模式。 –

+1

@QualityCatalyst這不會幫助OP擺脫字符串中的任何字符。 – itsme86

+6

任何您在45分鐘前發佈的完全相同問題中沒有使用5個答案的原因? https://stackoverflow.com/questions/44686985/how-to-add-characters-to-a-string-in-c-sharp – squill25

回答

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

如果你想的任何數字轉換爲(###) - ### - ##########格式,我建議如下片段:

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)}";