Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.09.2012, 15:54   #1
Serg94
Форумчанин
 
Аватар для Serg94
 
Регистрация: 10.12.2011
Сообщений: 167
По умолчанию Строки С#

Здравствуйте!У меня есть textbox в многострочном режиме, и мне нужно найти наименьшей длины слово!Мой алгоритм таков, что я загоняю длины слов в интовый масив, потом методом mas.Min() нахожу минимальное и в новом цикле сравниваю min с длиной слова, если совпало, то значит найдено минимальной длины слово!Это работает только тогда, когда слова есть в первой строке, если же я пишу во вторую, третью..то ничего не происходит..что не так?Можете предложить другой алгоритм?или подправить этот.
Код:
 textBox1.Text = Regex.Replace(textBox1.Text, " {2,}", " ");
                string[] line = textBox1.Text.Trim(' ').Split();
                int[] mas = new int[line.Length];
                for (int i = 0; i < line.Length; i++)
                {
                    mas[i] = line[i].Length;
                }
                int min = mas.Min(); string min1 = "";
                foreach (string sr in line)
                {
                    if (sr.Length == min)
                    {
                        min1 = sr;
                    }
                }
                textBox2.Text = min1;
Serg94 вне форума Ответить с цитированием
Старый 23.09.2012, 16:55   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
 textBox1.Text = Regex.Replace(textBox1.Text, " {2,}", " ");
string s=""; foreach (string k in listBox1.Items) if (k.Length < s.Length) s = k;
                textBox2.Text = k;
не?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.09.2012, 17:08   #3
Serg94
Форумчанин
 
Аватар для Serg94
 
Регистрация: 10.12.2011
Сообщений: 167
По умолчанию ..

Цитата:
Сообщение от Stilet Посмотреть сообщение
Код:
 textBox1.Text = Regex.Replace(textBox1.Text, " {2,}", " ");
string s=""; foreach (string k in listBox1.Items) if (k.Length < s.Length) s = k;
                textBox2.Text = k;
не?
listBox1 я же его не использую..алгоритм не работает

Последний раз редактировалось Serg94; 23.09.2012 в 17:15.
Serg94 вне форума Ответить с цитированием
Старый 23.09.2012, 17:30   #4
GetMax
Форумчанин
 
Регистрация: 21.10.2010
Сообщений: 588
По умолчанию

Предлагаю альтернативный вариант
Код:
int maxlen = int.MaxValue;
            for (int i = 0; i < (int)(textBox1.Lines.Count()); i++)
            {
               if ((textBox1.Lines[i].Length < maxlen ) && (textBox1.Lines[i] != ""))
               {
                    maxlen = textBox1.Lines[i].Length;
                    textBox2.Text = textBox1.Lines[i];
               }
            }
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Для благодарностей WMR R145235935681
GetMax вне форума Ответить с цитированием
Старый 23.09.2012, 17:42   #5
Serg94
Форумчанин
 
Аватар для Serg94
 
Регистрация: 10.12.2011
Сообщений: 167
По умолчанию

Цитата:
Сообщение от GetMax Посмотреть сообщение
Предлагаю альтернативный вариант
Код:
int maxlen = int.MaxValue;
            for (int i = 0; i < (int)(textBox1.Lines.Count()); i++)
            {
               if ((textBox1.Lines[i].Length < maxlen ) && (textBox1.Lines[i] != ""))
               {
                    maxlen = textBox1.Lines[i].Length;
                    textBox2.Text = textBox1.Lines[i];
               }
            }
выводит исходную строку в textbox2...то есть не работает
Serg94 вне форума Ответить с цитированием
Старый 23.09.2012, 18:03   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
алгоритм не работает
А моск напрячь? Не?
Код:
foreach (string k in textBox1.Text.Trim(' ').Split())...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.09.2012, 18:26   #7
Serg94
Форумчанин
 
Аватар для Serg94
 
Регистрация: 10.12.2011
Сообщений: 167
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А моск напрячь? Не?
Код:
foreach (string k in textBox1.Text.Trim(' ').Split())...
тоже так делал, только по-другому принципу..все ровно не работает..
даже вот Ваше условие,
string s="";
foreach (string k in textBox1.Text.Trim(' ').Split())
{
f(k.Length < s.Length)
s = k;,
} s же пустая строка.. условие не работает...
пробовал изначально в s забить слово, а потом проверять это условие, не работает
Serg94 вне форума Ответить с цитированием
Старый 23.09.2012, 19:17   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ох уж эти новички...
Неужели так трудно подумать чуть-чуть:
Код:
        private void textBox1_TextChanged(object sender, EventArgs e)
        {
            string s = ""; foreach (string k in textBox1.Text.Split(' ')) if (s=="" || k.Length < s.Length) s = k;
            label1.Text = s;
        }
Все работает. Даже проверил.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 24.09.2012, 01:05   #9
Serg94
Форумчанин
 
Аватар для Serg94
 
Регистрация: 10.12.2011
Сообщений: 167
По умолчанию ..

Stilet , Спасибо!)
Serg94 вне форума Ответить с цитированием
Старый 24.09.2012, 08:13   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Пожалуйста.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа на языке "Ассемблер" - ввод строки, анализ длины строки, добавление точки в конец строки Алексей_2012 Помощь студентам 1 05.04.2012 11:26
Сделать в гриде строки выше, чтобы не растягивать строки до бесконечности kris__tina БД в Delphi 1 09.06.2011 15:31
Создание пустой строки и копирование в неё содержимое предыдущей строки Gvaridos Microsoft Office Excel 2 29.10.2010 13:33
Определять максимальную длину той части строки s, которая не содержит символы из строки s1. Александе еть я Общие вопросы C/C++ 5 13.04.2010 20:54
Перенести символа с начала строки в место перед запятой этой же строки. Zhiltsov Microsoft Office Excel 4 05.06.2009 13:10