Ставится лишний пробел - C#
Формулировка задачи:
Всем привет! У меня есть вот этот код :
Цель этих строк -
1. Превратить все символы из RichTextBox (RTB) в char[] массив.
2. Перебрать каждый символ с помощью foreach
3. Проверить, есть ли в коллекции Dictionary с именем _Data "Values", совпадающие с перебираемым символом.
4. Если пункт 3 истин, то тогда перебрать всю коллекцию _Data в поисках ключа для символа.
5. После нахождения ключа, ключ добавляется в StringBuilder, и ставится " " (Пробел), если после этого символа в массиве char[] есть еще символы. Но если этот символ последний, то тогда пробел не ставится.
Программа шифратор. Заменяет символы на их "шифрованные" ключи.
И сама проблема у меня с пятым пунктом. Пробел всегда ставится, даже если в RTB был один символ. Почему? С чем это связано? Как это исправить?
P.S: Пытался поместить строку _ElNow += 1; в сам цикл foreach, но после этого любой символ, что я ввожу, просто исчезал...
void _Coder() { CheckForIllegalCrossThreadCalls = false; _Coder_BTN_Code.Enabled = false; string _RTBData = _Coder_RTB.Text; _ElAll = _RTBData.Length; StringBuilder _RTBMessage = new StringBuilder(); char[] _StringData = _RTBData.ToCharArray(0, _RTBData.Length); foreach (char _str in _StringData) { if (_Data.ContainsValue(Convert.ToString(_str)) == true) { foreach (KeyValuePair<string, string> _pair in _Data) { if (_pair.Value == Convert.ToString(_str) && _ElNow < _ElAll) { _ElNow += 1; _RTBMessage.Append(_pair.Key); _RTBMessage.Append(" "); _Coder_Counter_LBL.Text = "Кодируется элемент " + Convert.ToString(_ElNow) + " из " + Convert.ToString(_ElAll); } else if (_pair.Value == Convert.ToString(_str) && _ElNow == _ElAll) { _ElNow += 1; _RTBMessage.Append(_pair.Key); } } } else { _Learn_Log_LB.Items.Insert(0, "Отсутствие шифруемых символов в базе данных..."); _Coder_BTN_Code.Enabled = true; } } _Coder_RTB.Text = Convert.ToString(_RTBMessage); _ElNow = 0; _Coder_BTN_Code.Enabled = true; }
Решение задачи: «Ставится лишний пробел»
textual
Листинг программы
_RTBMessage.Append(string.Join(" ", your_ListName));
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д