using System;
using System.Text;
public class Test
{
public static void Main()
{
string[] errorChars = new string[]
{
"!",
"}",
"{",
"'",
};
string fTextSearch = "{testing[for]; my' homies}";
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 ++;
}
}
string myBetterString = sb.ToString();
Console.Write( myBetterString);
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uVGV4dDsKCnB1YmxpYyBjbGFzcyBUZXN0CnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBNYWluKCkKCXsKCSAgICAgICAgc3RyaW5nW10gZXJyb3JDaGFycyA9IG5ldyBzdHJpbmdbXQp7CiAgICAiISIsCiAgICAifSIsCiAgICAieyIsCiAgICAiJyIsCn07CgkgICAgICAgIHN0cmluZyBmVGV4dFNlYXJjaCA9ICJ7dGVzdGluZ1tmb3JdOyBteScgaG9taWVzfSI7CgkJU3RyaW5nQnVpbGRlciBzYiA9IG5ldyBTdHJpbmdCdWlsZGVyKCk7CgoJCXN0cmluZ1tdIHNwbGl0U3RyaW5nID0gZlRleHRTZWFyY2guU3BsaXQoZXJyb3JDaGFycywgU3RyaW5nU3BsaXRPcHRpb25zLk5vbmUpOwoJCQoJCWludCBudW1OZXdDaGFyYWN0ZXJzQWRkZWQgPSAwOwoJCWZvcmVhY2goIHN0cmluZyBpdG0gaW4gc3BsaXRTdHJpbmcpCgkJewoJCSAgICBzYi5BcHBlbmQoaXRtKTsgLy9hcHBlbmQgc3RyaW5nCgkJICAgIGlmIChmVGV4dFNlYXJjaC5MZW5ndGggPiAoc2IuTGVuZ3RoIC0gbnVtTmV3Q2hhcmFjdGVyc0FkZGVkKSkKCQkgICAgewoJCSAgICAgICBzYi5BcHBlbmQoZlRleHRTZWFyY2hbc2IuTGVuZ3RoIC0gbnVtTmV3Q2hhcmFjdGVyc0FkZGVkXSk7IC8vYXBwZW5kIHNwbGl0dGluZyBjaGFyYWN0ZXIKCQkgICAgICAgc2IuQXBwZW5kKGZUZXh0U2VhcmNoW3NiLkxlbmd0aCAtIG51bU5ld0NoYXJhY3RlcnNBZGRlZCAtIDFdKTsgLy9hcHBlbmQgaXQgYWdhaW4KCQkgICAgICAgbnVtTmV3Q2hhcmFjdGVyc0FkZGVkICsrOwoJCSAgICB9CgkJfQoJCQoJCXN0cmluZyBteUJldHRlclN0cmluZyA9IHNiLlRvU3RyaW5nKCk7CgkJCgkJQ29uc29sZS5Xcml0ZSggbXlCZXR0ZXJTdHJpbmcpOwoJfQp9