我正在寻找一种查找和搜索字符串中所有'字符的方法。我打算仅在它们没有其他字符之前替换它们。我应该如何解决这个问题而无需输入“ for”循环并在c#中搜索所有字符?
答案 0 :(得分:1)
这样的事情怎么样。照原样,如果您连续有一个以上的单引号,则会删除其中一个(因此'''变为')。这就是我阅读您的“规格”的方式。
它确实在所有字符之间“循环”-抱歉。在某个时候,无论您使用Replace还是Regex还是自己像这段代码一样进行操作,都会在字符串中逐字符循环。至少在这里,您可以控制它。之所以使用StringBuilder是因为,它是一个字符串构建器(而StringBuilders的运行速度非常快)。
private string RemoveSingleQuotes(string fromString)
{
var buffer = new StringBuilder(fromString.Length);
const char quote = '\'';
bool quoteCluster = false;
foreach (var c in fromString)
{
if (c == quote && quoteCluster)
{
buffer.Append(c);
}
else if (c == quote)
{
quoteCluster = true;
}
else
{
buffer.Append(c);
quoteCluster = false;
}
}
return buffer.ToString();
}