我有一个字符串“a; b; c d; e”
如何删除“;”周围的空白区域但保持一个字符之间。所以在更换之后,我想得到“a; b; c d; e”
谢谢
答案 0 :(得分:6)
如果您在;
var clean = "a ; b; c d; e".Replace(" ;", ";").Replace("; ", ";");
如果在;
之前或之后可能有多个空格,您可以在一个循环中运行它,退出条件是找不到" ;"
或"; "
时
或者,正则表达式可以完美地用于此。
答案 1 :(得分:1)
使用正则表达式。
我添加了代码
function stripSpacesKeepSemicolons(string dirty) {
private static Regex keepSemicolonStripSpacesRegex = new Regex("\\s*(;)\\s*");
return keepSemicolonStripSpacesRegex.Replace(dirty,"$1");
}
答案 2 :(得分:1)
string source = "a ; b; c d; e";
string result = source.Replace(" ;", ";").Replace("; ", ";");
答案 3 :(得分:1)
这适用于分号周围的任意数量的空格:
var str = "a ; b; c d; e";
while (str.IndexOf("; ") > -1 || str.IndexOf(" ;") > -1) {
str = str.Replace("; ", ";").Replace(" ;", ";");
}
答案 4 :(得分:1)
这个怎么样:
string s = "a ; b; c d; e";
string x = String.Join(";", s.Split(';').Select(t => t.Trim()));
无论涉及多少空格,这都应该有效。