TheMaxai
@TheMaxai

C# Как сделать перенос строки после определенного количества символов в строке?

Есть текст нужно чтобы через каждые 300 символов искал запятую, точку, пробел и т.д (Искал не после 300 символов а именно в этом отрезке 0 - 300 или например 300 - 600) и после этого символа (запятой, точки, пробела и т.д.) делал перенос строки и так далее.
Я хочу вывести это через Label, я знаю что есть вариант с Textbox но он мне не подходит.
  • Вопрос задан
  • 15934 просмотра
Решения вопроса 1
arxont
@arxont
C# программист
Попробуйте так (для примера взял текст вашего вопроса и размер строки в 50, а не 300)
string sourceString = "Есть текст нужно чтобы. через каждые 300 символов искал запятую, точку, пробел и т.д (Искал не после 300 символов а именно в этом отрезке 0 - 300 или например 300 - 600) и после этого символа(запятой, точки, пробела и т.д.) делал перенос строки и так далее. Я хочу вывести это через Label, я знаю что есть вариант с Textbox но он мне не подходит.";
int length = 50;
char[] charsForEOL = { '.', ',', ' ' };
string resultString = "";

label1.Text = sourceString;

do
{
    for (int i = length; i >= 1; i--)
    {
        if (charsForEOL.Contains(sourceString[i]))
        {
                resultString += sourceString.Substring(0, i) + "\n";
                sourceString = sourceString.Substring(i + 1);
                break;
        }
        if(i == 1)
        {
                resultString += sourceString.Substring(0, length) + "\n";
                sourceString = sourceString.Substring(length + 1);
        }
    }
} while (sourceString.Length > length);

resultString += sourceString;

label2.Text = resultString;

21c9fc023e8fd6f98d8cf43aa41f8ef261b216e6
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы