Добавлять пробел после каждого 4-го символа во входной строке ПРИ записи? - PullRequest
0 голосов
/ 04 августа 2020

Я знаю, что подобные вопросы задавались здесь раньше, однако я не смог найти ни одного, который объяснял бы, как сделать это в прямом эфире, когда пользователь вводит строку в текстовое поле. Это касается приложения формы windows в C#.

Вот мой текущий код:

for (int i = 4; i <= input.Length; i += 4)
{
    input = input.Insert(i, " ");
    i++;
}

Это не работает, поскольку продолжает добавлять пробелы после каждого нажатия клавиши. У меня этот for-l oop запускается при невозвратном нажатии клавиши.

Ответы [ 2 ]

0 голосов
/ 05 августа 2020

Хорошо, я разобрался. Для тех, кто просматривает эту ветку в будущем, вот что я сделал:

if (input.Replace(" ", String.Empty).Length % 4 == 0 && input[input.Length - 1] != ' ')
{
    input += ' ';
}

Это добавляет пробелы там, где они необходимы, и гарантирует, что не вызовет бесконечное l oop добавления пробелов и запуска TextChanged событие.

0 голосов
/ 05 августа 2020

Это то решение, к которому я пришел, думаю, что если адаптировать "Консоль". в оконные формы, это будет работать.

 string text = string.Empty;
    for (int i = 0; i < 50; i++) //Change 50 for whatever size you want
    {
        switch (i % 5) //every time 'i' is a multiple of 5 it will write a blank space
        {
            default:
                text += Console.ReadKey().KeyChar;
                break;
            case 0:
                Console.Write(" ");
                break;
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...