2015-11-05 64 views
-2

C#我想在文本框中的「+ - * /」之類的符號之前和之後插入空格C#我想在文本框中的「+ - * /」之前和之後插入空格

例如:前

85+89/56 

85 + 89/56 
+0

你已經標記了這個正則表達式,所以你已經有東西了?請分享你的。 –

+0

到目前爲止你有什麼支持?你嘗試了什麼? – HimBromBeere

+3

即使沒有正則表達式,你也可以實現,你只需要4個符號。使用String.Replace。如果你打算使用正則表達式,它真的很基礎:'[+ */- ]'。 –

回答

0

我倒是建議一個簡單的一行:

myString = "85+89/56".Replace("+", " + ").Replace("-", " - ").Replace("/", "/") 

如果你需要更多的字符被替換構建的方法:

string ReplaceSpecialCharacters(string theString, string c, string replacement) 
{ 
    return theString.Replace(c, replacement); 
} 

正如評論中提到的,如果t這裏已經是輸入空格內,您可以簡單地使用String-Replace(" ", "")

編輯之前將其刪除:爲了更加有用的方法可能被擴展:

string ReplaceSpecialCharacters(string theString, string[] searchStrings, string delimiter) 
{ 
    StringBuilder builder = new StringBuilder(theString); 
    for(var search in searchString) 
     builder.Append(theString.Replace(search, delimiter+ search + delimiter); 

    return builder.ToString(); 

} 
+0

如果空間已經存在,這可能會增加額外的空間。 – ataravati

+0

@ataravati OP沒有提到這一點,但我加了一條評論 – HimBromBeere

+0

OP沒有提到這一點,但很明顯。 – ataravati

4

您可以輕鬆地用正則表達式做到這一點。這也將刪除額外的空間,如果有任何:

var text = "85+89/56"; 
var pattern = @"\s*([+*/-])\s*"; 

text = Regex.Replace(text, pattern, " $1 "); 
+0

這很好用 –

+0

那麼,我可以問爲什麼你沒有選擇它作爲正確的答案? – ataravati

相關問題