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 に答える