Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Последние темы форума

Показать новые сообщения »

Почтовая рассылка

Подписчиков: 11741
Последний выпуск: 19.06.2015

как удалить из символьного массива сразу несколько слов?

87K
21 мая 2016 года
aidenyukine
1 / / 21.05.2016
как удалить из символьного массива сразу несколько слов?
например есть 6 слов и нужно удалить с 3 по 5
206
22 мая 2016 года
wanja
1.2K / / 03.02.2003
Находишь начало первого удаляемого слова и конец последнего.
И копируешь весь "хвост", начиная со следующего за последним символа в место начала первого.
431
22 мая 2016 года
cronya
419 / / 03.01.2009
Как то так, для рандомного расположения определенных слов в строке
Код:
private void Form1_Load(object sender, EventArgs e)
        {
            //строка слов
            this.textBox1.Text = "one two three four five six seven eight nine ten one ten two seven";
            //переводим каретку в конец строки
            this.textBox1.Select(this.textBox1.TextLength, 0);
            //заполняем список слов которые убрать надо из строки
            this.listBox1.Items.Add("one");
            this.listBox1.Items.Add("two");
            this.listBox1.Items.Add("three");
            this.listBox1.Items.Add("four");
            //помечаем эти слова выбранными, чтобы потом исключить из строки(такой метод в качестве примера не обязателен)
            for (int idx=0; idx<this.listBox1.Items.Count; idx++)
            {
                this.listBox1.SelectedIndex = idx;
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            //находим слова в строке, которые разделены пробелами
            string[] ar = textBox1.Text.Split(' ');
            //переводим все это в список, чтобы проще было с массивом слов работать
            List<string> ls = ar.ToList<string>();
            //булевый флаг          
            bool flag = false;
            //цикл проверки на совпадении в строке(в нашем парсированном списке
            do
            {
                flag = false;
                //каждый эелмент списка проверяем на слова, кторые нужно убрать из строки
                for (int idx = 0; idx < ls.Count; idx++)
                {
                    for (int jdx = 0; jdx < listBox1.SelectedItems.Count; jdx++)
                    {
                        //если есть совпадения
                        if (ls[idx].Contains(this.listBox1.SelectedItems[jdx].ToString()))
                        {
                            //убираем из списка
                            ls.RemoveAt(idx);
                            //флаг указывающий что такой элемент был
                            flag = true;
                            //останавливаем цикл
                            break;
                        }
                    }
                    //останавливаем цикл
                    if (flag) break;
                }
            }
            //выполняем цикл пока все вхождения не уберем
            while (flag);
            //обнуляем наш текст бокс на пустой
            this.textBox1.Text = string.Empty;
            //записываем в него все, что не исключили
            for (int idx=0; idx<ls.Count; idx++)
            {
                this.textBox1.Text += ls[idx] + " ";
            }
        }
Прикрепленные файлы:
17 Кб
Загрузок: 106

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог