Уроки C# – Работа со строками – Replace, Contains, Remove, Trim, ToLower, ToUpper

25
17



Ссылка для донатов:

Основной канал:

Шпаргалка

#Replace #Contains #Remove #Trim #ToLower #ToUpper #СиSharp #СиШарп

Nguồn:https://wijstaanvooronzegrondrechten.org/

25 COMMENTS

  1. Хачатур сделал шпаргалку по работе со строками,
    но это работа, так сказать, изнутри строк. А мне ещё не

    хватало подобной таблицы для работы со строками извне.

    Итак, копируем из (в) string, string[], StringBuilder, textBox, list, listBox.

    Два момента:

    1-й. В textBox и listBox нельзя изменить значение какой-либо

    строки. Можно лишь добавить:

    textBox1.Text+=label1.Text+ Environment.NewLine;

    listBox1.Items.Add("Новый элемент")

    или вставить

    listBox1.Items.Insert(1, "Новый элемент");

    А вот как происходит с list. Сначала нужно добавить строки,

    а потом уже можно их изменять:

    List<string> list1 = new List<string>();

    Здесь ещё нельзя написать list1[0] = "eee"; – будет ошибка

    list1.Add("Нулевая строка");

    list1.Add("Первая строка");

    list1.Add("Вторая строка");

    А здесь уже можно написать:

    list1[0] = "eee";

    2-й. textBox оочень медленный. Когда там набирается несколько сотен

    строк, то обработка идёт с ощутимыми задержками.
    В этом случае
    лучше использовать listBox.

    Ну всё, поехали!
    КОПИРУЕМ В СТРИНГ

    //копируем нулевую строку стрингового массива в стринг

    string[] lines = { "Первая", "Вторая" };

    string s = lines[0];

    ————————————————-

    //копируем из StringBuilder в стринг

    //StringBuilder – динамическая строка

    StringBuilder sb = new StringBuilder("Привет мир");

    string s = Convert.ToString(sb);

    ————————————————-

    //копируем нулевую строку из textBox в стринг

    string s = textBox1.Lines[0];

    ————————————————-

    //копируем нулевую строку из list в стринг

    List<string> list = textBox1.Lines.ToList();

    string s = list[0];

    ————————————————-

    //копируем нулевую строку из listBox в стринг

    string s = Convert.ToString(listBox1.Items[0]);

    —————————————————————————-

    —————————————————————————-

    КОПИРУЕМ В СТРИНГОВЫЙ МАССИВ

    // копируем строку в стринговый массив

    string s="Привет"

    string[] lines = new string[] { s };

    ————————————————-

    // копируем из StringBuilder в стринговый массив

    string[] lines = new string[] { Convert.ToString(sb) };

    ————————————————-

    // копируем из textBox в стринговый массив

    string[] lines = textBox1.Lines;

    ————————————————-

    // копируем из list в стринговый массив

    string[] lines =list1.ToArray();

    ————————————————-

    // копируем из listBox в стринговый массив

    string[] lines = listBox1.Items.OfType<string>().ToArray();

    —————————————————————————-

    —————————————————————————-

    КОПИРУЕМ В textBox

    Добавляем строку в textBox

    textBox1.Text+=label1.Text+ Environment.NewLine;

    ————————————————-

    Копируем из стрингового массива в textBox

    textBox1.Lines=lines; //где lines – это string[] lines

    ————————————————-

    // добавляем StringBuilder в textBox

    textBox1.Text += Convert.ToString(sb)+Environment.NewLine;

    ————————————————-

    //Копируем из textBox в textBox

    textBox2.Text = textBox1.Text;

    ————————————————-

    //Копируем из list в textBox

    textBox1.Text = string.Join(Environment.NewLine, list1);

    ————————————————-

    //Копируем из listBox в textBox (цикл for)

    for (int i = 0; i < listBox1.Items.Count; i++)

    {

    // Если это последняя строка, то нам не нужно

    // переводить курсор на новую строку:

    if (i== listBox1.Items.Count – 1) // Если последняя строка:

    {

    textBox1.Text += listBox1.Items[i];

    break;

    };

    textBox1.Text += listBox1.Items[i]+ Environment.NewLine;

    }

    ————————————————-

    // Копируем из listBox в textBox (цикл while)

    int i = 0;

    while (i < listBox1.Items.Count)

    {

    if (i == listBox1.Items.Count – 1)

    {

    textBox1.Text += listBox1.Items[i];

    buttonRefresh.PerformClick();

    break;

    };

    textBox1.Text += listBox1.Items[i] + Environment.NewLine;

    i++;

    }

    —————————————————————————-

    —————————————————————————-

    КОПИРУЕМ В list

    Можно создать list заранее: List<string> list1 = new List<string>();

    Можно создать и сразу присвоить значение: List <string> list1= textBox1.Lines.ToList();

    // копируем стринговый массив в лист

    List<string> list1 = lines.ToList(); //где lines – это string[] lines

    ————————————————-

    // добавляем стринг в лист

    list1.Add(label1.Text);

    ————————————————-

    // добавляем StringBuilder в лист

    list1.Add("");

    list1[0] = Convert.ToString(sb);

    ————————————————-

    // добавляем list в list

    list2.AddRange(list1);

    ————————————————-

    // Копируем из textBox в list

    List <string> list1 = textBox1.Lines.OfType<string>().ToList();

    List <string> list2 = textBox1.Lines.ToList(); // А можно и так

    ————————————————-

    // Копируем из listBox в list

    List <string> list1 = listBox1.Items.OfType<string>().ToList(); // можно так

    List <string> list2 = listBox1.Items.Cast<String>().ToList(); // а можно и так

    —————————————————————————-

    —————————————————————————-

    КОПИРУЕМ В listBox

    // добавляем стринговый массив в листбокс

    listBox1.Items.AddRange(lines); //где lines – это string[] lines

    ————————————————-

    // вставляем и добавляем из StringBuilder в listBox

    listBox1.Items.Insert(1, Convert.ToString(sb));

    listBox1.Items.Add(Convert.ToString(sb));

    ————————————————-

    // добавляем из listBox в listBox

    object[] objCollection = new object[listBox1.Items.Count];

    listBox1.Items.CopyTo(objCollection, 0);

    listBox2.Items.AddRange(objCollection);

    ————————————————-

    // добавляем list в listBox

    foreach (string s in list1)

    {

    listBox1.Items.Add(s);

    }

    ————————————————-

    // добавляем выделенный текст из textBox в listBox

    listBox1.Items.Add(textBox1.SelectedText);

    ————————————————-

    // добавляем textBox в listBox

    listBox1.Items.AddRange(textBox1.Lines);

    ————————————————-

    // добавляем textBox в listBox (цикл for)

    for (int i=0; i < textBox1.Lines.Length; i++)

    {

    listBox1.Items.Add(textBox1.Lines[i]);

    }

    ————————————————-

  2. всем привет. подскажите как именно перевести в верхний регистр не всё слово а к примеру первую букву в слове?

  3. Приветствую всех,знаю что видео уже как год на канале,но может хоть кто и ответит)))Проблема в том, что когда читаю текст в файле как в видео,то вместо русских символов выходят знаки вопроса а с латиницей всё нормально,как быть?Я так понял проблема в какой-то кодировке,так вот как это настроить,видать надо в настройках программы полазить?Сам новичок я в winforms,обычно работаю с железом на C++,VisualStudio2019 у меня и решил подружить компьютер с микроконтроллером.

  4. Дружище, есть у тебя видосы про формы, написал авторизатор, он все норм заходит регается и сворачивается и сразу же запускается второе окно, в этом окне расположен основной функционал, когда жму на кнопку запустить ни чего не происходит, переношу этот же код в первую форму там все норм работает, пробовал уже все что мог найти в инете по C#, пишут что фокус надо переводить на вторую форму, но я начинающий, как неделю назад начал что то писать и много еще чего не понимаю,а то что пишут в инете не рассказывая что ставить куда ставить хз, я поставил ни чего не работает, думаю или я что то не делаю или это не работает))) короче удалил вторую форму сделал на одной, но сегодня понял что надо возвращать вторую форму.

  5. Очень жаль , что нет разбора домашних заданий,пока моих мозгов хватило на это:
    private void button1_Click(object sender, EventArgs e)
    {
    textBox1.Text = File.ReadAllText(@"C:UsersVOVADesktop111.txt");
    textBox1.Text = textBox1.Text.Replace("еще", "ещё").Replace("Еще", "Ещё");

    Method("Исправлено", 1000);

    if(textBox1.Text.Contains("пожалуйста"))
    {
    textBox1.Text = textBox1.Text.Replace("пожалуйста", ", пожалуйста,");
    }

    Method("Скопировать в буфер обмена", 2000);

    Clipboard.SetDataObject(textBox1.Text);
    }

    async void Method(string str, int num)
    {
    await Task.Delay(num);
    button1.Text = str;
    }

  6. Шрифт очень мелкий на ваших роликах , код плохо виден . Это у меня или у вас такие настройки ?

  7. Вы все методы класса String покажите . Когда показываете метод – говорите из какого он класса , потом будет удобнее его найти в справочнике или самоучителе . А вообще классные уроки !

  8. Тогда пусть люди пишут либо правильно сразу свои статьи, либо в программку-исправлялку

  9. Хотел сделать progressbar(continue), но когда ставлю Task.Deley меньше 1000 анимация не успевает идти одновременно с счетчиком(проверял через лейбл) по-этому, красоты поставил progressbar(marquee), вот сам код(надеюсь вы еще читаете коментарии )
    using System;

    using System.Drawing;

    using System.IO;

    using System.Threading.Tasks;

    using System.Windows.Forms;

    namespace трень

    {

    public partial class Form1 : Form

    {

    public Form1()

    {

    InitializeComponent();

    }

    bool done = false;

    private async void button1_Click(object sender, EventArgs e)

    {

    string[] str = textBox1.Lines;

    button1.BackColor = Color.Bisque;

    if(textBox1.Text == "")

    {

    textBox1.Text = "введи текст";

    await Task.Delay(3000);

    textBox1.Text = "";

    return;

    }

    if (done == false)

    {

    while (progressBar1.Value != 100)

    {

    progressBar1.Visible = true;

    progressBar1.Value++;

    await Task.Delay(10);

    if (progressBar1.Value == 100)

    {

    Method();

    progressBar1.Value = 0;

    button1.Text = "Исправлено";

    progressBar1.Visible = false;

    await Task.Delay(3000);

    button1.Text = "Cкопирован в буфер обмена";

    Clipboard.SetDataObject(textBox1.Text);

    await Task.Delay(2000);

    button1.Text = "Нажми что бы очистить";

    done = true;

    return;

    }

    }

    }

    if(done == true)

    {

    await Task.Delay(1000);

    textBox1.Text = "";

    done = false;

    return;

    }

    void Method()

    {

    foreach (string s in str)

    {

    textBox1.Text = textBox1.Text.Replace("все равно", "всё равно");

    textBox1.Text = textBox1.Text.Replace("еще", "ещё");

    textBox1.Text = textBox1.Text.Replace(",,", ",");

    textBox1.Text = textBox1.Text.Replace("Пожалуйста ", "Пожалуйста, ");

    textBox1.Text = textBox1.Text.Replace(" пожалуйста ", ", пожалуйста, ");

    textBox1.Text = textBox1.Text.Replace(" а ", ",а ");

    }

    }

    }

    }

    }

  10. Автор помоги пожалуйста разобраться
    Имеется текстовой файл – нужно вывести на экран всю строку n из файла из множество строк которые в этом же файле – изменить эту строку n и сохранить изменения в этой же строке.
    В качестве редактора использую richTextBox
    Конечно строка n будет находится по определенному слову которую пользователь введет в textBox – то есть этих строк может быть несколько в которых есть такое слово
    Если бы знать номер этой строки или номера этих строк в котором или в которых находится это слово – то уже можно считать что вопрос решен
    Заранее благодарен

  11. Спасибо за урок, после плюсов интересно и легко переходить на шарп, благодаря тебе. ДЗ:
    async private void button1_Click(object sender, EventArgs e)

    {

    if (button1.Text != "Скопировать")

    {

    textBox1.Text=textBox1.Text.Replace(" пожалуйста ", ", пожалуйста, ").Replace(" еще"," ещё");

    button1.Text = "Исправлено";

    await Task.Delay(2000);

    button1.Text = "Скопировать";

    }

    else

    Clipboard.SetDataObject(textBox1.Text);

    }

  12. дз
    bool but = true;

    public Form1()

    {

    InitializeComponent();

    }

    private void Button1_Click(object sender, EventArgs e)

    {

    if (but == true)

    {

    but = false;

    button1.Text = "Исправить форматирование";

    textBox1.Text = textBox1.Text.Replace(",", ", ").Replace(".", ". ").Replace(",,", ",").Replace("..", ".").Replace(" ", " ");

    button1.Text = "Скопировать";

    }

    else

    {

    Clipboard.SetDataObject(textBox1.Text);

    but = true;

    }

    }

  13. Как редактировать формат .txt в C# ? когда открываю файл в richTextBox редактирую и потом когда сохраняю и потом когда открываю этот текстовой файл обычным блокнотом то он показывает или какие то дополнительные символы или же сохраняет в одну длинную строку – хотя в оригинале текстового файла 37 строк.
    1. Если сохранять через SaveFile() = какие то дополнительные символы тоже вставляет
    2. Если сохранять через saveFileDialog то все сохраняет в одну строку
    Как будь то текстовой редактор windows и C# разрабатывали разные компании, а не майкрософт

  14. Извиняюсь за опоздание. Вот домашнее задание, проверьте пожалста) – https://yadi.sk/d/VEk_hwIxin6Hvw

  15. Посмотрел основу, все гуд, лайк, подписка))
    В общем из пожеланий: пролистал плейлист, не нашел ничего про базы данных, а очень хотелось бы, дальше скажу почему.
    Предыстория: собственно почему стал учить C#, в общем то с программированием знаком, 2 года работал в веб-студии. Сейчас работаю на крупном заводе, большой парк компьютерной техники и для того что бы сотрудники моего IT-отдела пошли и исправили у кого то какие то неполадки с техникой, пользователь должен написать заявку, подписать у своего руководителя, подписать моим руководителем, потом должен подписать я и отдать заявку своему сотруднику что бы он что то пошел и сделал, хотя там и работы то на 5 минут, в общем советская бюрократия.
    К делу: хочу написать некое подобие электронного Документооборота. Программка, в ней заведены пользователи, у каждого есть права, допустим подача заявки, подписание документа, принятие в оборот и к примеру что бы пользователь по выполнению работ подтверждал выполнение. И что бы все это в базе хранилось и в любой момент, начальник мог посмотреть когда были заявки, сколько и как выполнялось. Для начала. В последствии перевести в программу все журналы работ, регистраций и прочей лабуды.
    Так что если есть знания работы с БД, поделись, очень нужно, у меня в них большой пробел, а у тебя все отлично получается объяснять. Ну и распределение прав, как это вообще работает и как это реализовать.
    А за курс огромное спасибо, Win 10 Tweaker пользуюсь, прога огонь, до просмотра курса не знал что ты ее написал. Продолжаю смотреть дольше. Спасибо все очень интересно.

  16. Спасибо за крутой урок!) Кстати я уже дня 3 борюсь с багом, может у вас будут идеи. Дело в том что я написал сервер, и чат на нем реализовал через json, и получается что когда один клиент отправляет второму сообщение, то он находит его текстовый файлик, и вписывает в него это сообщение, и если выйти с сервера нормально, т.е закрыть сокет и все такое, то нет проблем, ну а если просто закрыть клиент не по правилам, то при попытке прочитать это сообщение, сервер начинает глючить, второй клиент не может получить доступ к файлу. Можно ли как-то освободить файлик? Ну т.е закрывать процесс, что бы он не мешал, т.е записал и освободил. Я рылся в сети, пишут про потоки, то что можно через поток текст передать, и просто закрывать поток, но я что-то сомневаюсь что это поможет, а вы как думаете?

  17. Спасибо за хороший урок
    ДЗ:

    https://drive.google.com/file/d/1Lbj5CqM3H4qeBBjRZ9w91a-K_VQqXSxL/view?usp=sharing

    using System;

    using System.Drawing;

    using System.Threading.Tasks;

    using System.Windows.Forms;

    namespace _22less

    {

    public partial class Form1 : Form

    {

    public Form1()

    {

    InitializeComponent();

    }

    bool textChanget = true;

    async void Button1_Click(object sender, EventArgs e)

    {

    if (textChanget == true)

    {

    textBox1.Text = textBox1.Text.Replace("Привет ", "Привет, ").

    Replace("еще", "ещё").Replace("все равно", "всё равно").

    Replace("все-равно", "всё равно").Replace("всеравно", "всё равно").

    Replace("всёравно", "всё равно").Replace("ежик", "ёжик");

    await Task.Delay(1000);

    button1.Text = "Скопировать";

    button1.BackColor = Color.LawnGreen;

    textChanget = false;

    }

    else

    Clipboard.SetDataObject(textBox1.Text);

    }

    private void TextBox1_TextChanged(object sender, EventArgs e)

    {

    textChanget = true;

    button1.BackColor = Color.Gold;

    button1.Text = "Исправить";

    }

    }

    }

  18. Спасибо большое написал программулину по выборке телефонных переговоров. Раньше тратил на эту лабуду полдня. Теперь все получается за доли секунд. Класс!

  19. Снова привет, Хачатур. Не подскажешь в чём проблема? При чтении файла с русским текстом ловлю это http://prntscr.com/ohs00e, также почему то ничего не выводит данный код http://prntscr.com/ohs2gy (текст брал тот же, от Win10 Tweaker`a)

  20. Вот мое дз
    public partial class Form1 : Form

    {

    int i = 0;

    public Form1()

    {

    InitializeComponent();

    }

    private async void Button1_Click(object sender, EventArgs e)

    {

    i++; // Прибавляем к i 1

    if (i == 2) { goto Sas; } //Условие если счетчик равен 2, то переход к исполнению кода из этикетки

    else

    {

    textBox1.Text = textBox1.Text.Replace("еще","ещё").Replace("Все равно", "Всё равно").Replace("все равно", "всё равно"); //Заменяем слова или буквы в словах в определенных случаях

    textBox1.Text = textBox1.Text.Replace(" что", ", что").Replace("пожалуйста", "пожалуйста, ").Replace(" а", ", а").Replace(",,", ","); // Расставляем запятые (рассмотрены не все случаи)

    textBox1.Text = textBox1.Text.Trim(); //Удаляем лишние пробелы между словами

    await Task.Delay(500); //Задержка на пол секунды

    button1.Text = "Исправлено";

    await Task.Delay(500); //Задержка на пол секунды

    button1.Text = "Скопировать в буфер обмена";

    }

    return; //Не выполнять код ниже

    Sas: //Этикетка

    Clipboard.SetDataObject(textBox1.Text); //Сохраняем в буфер

    button1.Text = "Скопировано";

    textBox1.Text = "";

    i = 0; //Обнуляем счетчик

    }

    }

    }

LEAVE A REPLY

Please enter your comment!
Please enter your name here