Предполагая, что это для демонстративного приложения, где вы действительно хотите поменять местами символы, а не биты (как потребуется в правильном шифре), вы можете использовать этот метод:
static string SwapCharacters(string s, char c1, char c2)
{
StringBuilder sb = new StringBuilder(s);
for (int i = 0; i < s.Length; ++i)
if (s[i] == c1)
sb[i] = c2;
else if (s[i] == c2)
sb[i] = c1;
return sb.ToString();
}
Вы бынужно вызвать его, используя char
параметры, а не int
:
string swap1 = SwapCharacters(value1, '0', '1');
Редактировать : чтобы добиться того, что вы просили в комментарии:
static string SwapCharacters(string s)
{
StringBuilder sb = new StringBuilder();
for (int i = 0; i < s.Length; i += 2)
{
if (i < s.Length - 1)
sb.Append(s[i + 1]);
sb.Append(s[i]);
}
return sb.ToString();
}