0

我基本上是在寻找一种方法来检查某个字符串是否包含某个字符列表中的任何一个,以及是否包含其中一个来拆分字符串,然后在其前面/后面插入相同的字符。这是因为这些特定字符在输入时破坏了我的搜索,因为 SQL 不能很好地处理它们。

到目前为止,我实际上已经走了多远:

string[] errorChars = new string[]
{
    "!",
    "}",
    "{",
    "'",
};

for (int i = 0; i < errorChars.Count(); i++)
{
    if(fTextSearch.Contains(errorChars[i]))
    {
    }
}
4

2 回答 2

1

我认为您真正想要的是替换功能。

for (int i = 0; i < errorChars.Count(); i++)
{
    if(fTextSearch.Contains(errorChars[i]))
    {
        fTextSearch.Replace(errorChars[i],errorChars[i] + errorChars[i]);
    }
}

尽管将角色加倍可能不是答案。您需要转义字符 \ 所以替换字符串将是

ftextSearch.Replace(errorChars[i],"\"+errorChars[i]);
于 2012-07-25T12:43:57.483 回答
1

几个答案的问题(在他们目前的版本中)是他们正在放弃你的分裂角色。如果您需要保留拆分字符,请尝试以下操作:

StringBuilder sb = new StringBuilder();

string[] splitString = fTextSearch.Split(errorChars, StringSplitOptions.None);

int numNewCharactersAdded = 0;
foreach( string itm in splitString)
{
   sb.Append(itm); //append string
   if (fTextSearch.Length > (sb.Length - numNewCharactersAdded))
   {
      sb.Append(fTextSearch[sb.Length - numNewCharactersAdded]); //append splitting character
      sb.Append(fTextSearch[sb.Length - numNewCharactersAdded - 1]); //append it again
      numNewCharactersAdded ++;
   }
}

fTextSearch = sb.ToString();

这是一个IDEOne 示例

于 2012-07-25T12:44:58.057 回答