Подтвердить что ты не робот

Как удалить все экземпляры определенного символа из строки

Здравствуйте, я пытаюсь удалить весь конкретный символ из строки. Я использовал String.Replace, НО ЭТО НИЧЕГО, и я не знаю, почему. Это мой текущий код.

    public string color;
    public string Gamertag2;
    private void imcbxColor_SelectedIndexChanged(object sender, EventArgs e)
    {
        uint num;
        XboxManager manager = new XboxManagerClass();
        XboxConsole console = manager.OpenConsole(cbxConsole.Text);
        byte[] Gamertag = new byte[32];
        console.DebugTarget.GetMemory(0x8394a25c, 32, Gamertag, out num);
        Gamertag2 = Encoding.ASCII.GetString(Gamertag);
        if (Gamertag2.Contains("^"))
        {
            Gamertag2.Replace("^" + 1, "");
        }
        color = "^" + imcbxColor.SelectedIndex.ToString() + Gamertag2;
        byte[] gtColor = Encoding.ASCII.GetBytes(color);
        Array.Resize<byte>(ref gtColor, gtColor.Length + 1);
        console.DebugTarget.SetMemory(0x8394a25c, (uint)gtColor.Length, gtColor, out num);
    }

Он в основном извлекает значение байта строки из моего Xbox 360, а затем преобразует его в строку. но я хочу, чтобы он удалял все экземпляры "^" String.Replace, похоже, не работает. Это абсолютно ничего. Он просто оставляет строку, как раньше. Может ли кто-нибудь объяснить мне, почему он это делает?

4b9b3361

Ответ 1

В исходный экземпляр строки вы должны присвоить возвращаемое значение String.Replace:

следовательно, вместо (нет необходимости в Contains check)

if (Gamertag2.Contains("^"))
{
    Gamertag2.Replace("^" + 1, "");
}

только это (что этот мистик +1?):

Gamertag2 = Gamertag2.Replace("^", "");

Ответ 2

Две вещи:

1) Строки С# неизменяемы. Вам нужно будет сделать это:

Gamertag2 = Gamertag2.Replace("^" + 1, "");

2) "^" + 1? Зачем ты это делаешь? Вы в основном говорите Gamertag2.Replace("^1", "");, который, я уверен, не то, что вы хотите.

Ответ 3

Как и скалолазание, ваша проблема определенно

Gamertag2.Replace("^"+1,"");

Эта строка удалит только экземпляры "^ 1" из вашей строки. Если вы хотите удалить все экземпляры "^", то вы хотите:

Gamertag2.Replace("^","");