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

Ваш аккаунт

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

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

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

Отсортировать слова в строке

61K
09 апреля 2015 года
Максим Тесля
13 / / 10.12.2014
Доброго времени суток) Нужна ваша помощь!
Вопрос стоит так:
Как отсортировать слова в строке по возрастанию или по убыванию?
Например я считал строку "Love as expensive crystal, you with it be cautious!" из файла.
Выбрал все слова без всяких знаков в новую строку
 
Код:
string[] ar = a.Split(new Char[] { ' ', ',', '.', ':', '!', '?', ';' }, StringSplitOptions.RemoveEmptyEntries);
И теперь нужно взять отсортировать слова.Как это сделать в строке понятия не имею.
Буду рад примеру в виде кода=))
392
10 апреля 2015 года
cronya
421 / / 03.01.2009
Как делать нечего, C#
Код:
private void Form1_Load(object sender, EventArgs e)
{
Lines = new List<string>();
char[] substring = { ' ', ',', '.', ':', ';', '!', '?' };
int startIndex = 0, workIndex = 0;
for (int idx = 0; idx < textBox1.Text.Length; idx++)
{
for (int jdx = 0; jdx < substring.Length; jdx++)
{
    if (substring[jdx] == textBox1.Text[idx])
    {                        
        workIndex = idx;
        if(workIndex > startIndex)
            Lines.Add(textBox1.Text.Substring(startIndex, workIndex - startIndex));
        startIndex = idx + 1;
        break;
    }
}
}
textBox2.Text = string.Empty;
for(int idx=0; idx<Lines.Count; idx++)
{
textBox2.Text += Lines[idx] + Environment.NewLine;
}
}
       

private void button1_Click(object sender, EventArgs e)
{
SortByUp();
textBox2.Text = string.Empty;
for (int idx = 0; idx < Lines.Count; idx++)
{
textBox2.Text += Lines[idx] + Environment.NewLine;
}
}

private void SortByUp()
{
bool flag = false;
do
{
flag = false;
for (int idx = 0; idx < Lines.Count - 1; idx++)
{
    int position = Lines[idx].CompareTo(Lines[idx + 1]);
    if (position > 0)
    {
        string tmp = Lines[idx];
        Lines[idx] = Lines[idx + 1];
        Lines[idx + 1] = tmp;
        flag = true;
    }
}
}
while (flag);
}
private void SortByDown()
{
bool flag = false;
do
{
flag = false;
for (int idx = 0; idx < Lines.Count - 1; idx++)
{
    int position = Lines[idx].CompareTo(Lines[idx + 1]);
    if (position < 0)
    {
        string tmp = Lines[idx];
        Lines[idx] = Lines[idx + 1];
        Lines[idx + 1] = tmp;
        flag = true;
    }
}
}
while (flag);
}

private void button2_Click(object sender, EventArgs e)
{
SortByDown();
textBox2.Text = string.Empty;
for (int idx = 0; idx < Lines.Count; idx++)
{
textBox2.Text += Lines[idx] + Environment.NewLine;
}
}
Результат


ЗЫ: исходник прилагается.
Прикрепленные файлы:
14 Кб
Загрузок: 712
61K
14 апреля 2015 года
Максим Тесля
13 / / 10.12.2014
Цитата: cronya
Как делать нечего, C#
Код:
private void Form1_Load(object sender, EventArgs e)
{
Lines = new List<string>();
char[] substring = { ' ', ',', '.', ':', ';', '!', '?' };
int startIndex = 0, workIndex = 0;
for (int idx = 0; idx < textBox1.Text.Length; idx++)
{
for (int jdx = 0; jdx < substring.Length; jdx++)
{
    if (substring[jdx] == textBox1.Text[idx])
    {                        
        workIndex = idx;
        if(workIndex > startIndex)
            Lines.Add(textBox1.Text.Substring(startIndex, workIndex - startIndex));
        startIndex = idx + 1;
        break;
    }
}
}
textBox2.Text = string.Empty;
for(int idx=0; idx<Lines.Count; idx++)
{
textBox2.Text += Lines[idx] + Environment.NewLine;
}
}
       

private void button1_Click(object sender, EventArgs e)
{
SortByUp();
textBox2.Text = string.Empty;
for (int idx = 0; idx < Lines.Count; idx++)
{
textBox2.Text += Lines[idx] + Environment.NewLine;
}
}

private void SortByUp()
{
bool flag = false;
do
{
flag = false;
for (int idx = 0; idx < Lines.Count - 1; idx++)
{
    int position = Lines[idx].CompareTo(Lines[idx + 1]);
    if (position > 0)
    {
        string tmp = Lines[idx];
        Lines[idx] = Lines[idx + 1];
        Lines[idx + 1] = tmp;
        flag = true;
    }
}
}
while (flag);
}
private void SortByDown()
{
bool flag = false;
do
{
flag = false;
for (int idx = 0; idx < Lines.Count - 1; idx++)
{
    int position = Lines[idx].CompareTo(Lines[idx + 1]);
    if (position < 0)
    {
        string tmp = Lines[idx];
        Lines[idx] = Lines[idx + 1];
        Lines[idx + 1] = tmp;
        flag = true;
    }
}
}
while (flag);
}

private void button2_Click(object sender, EventArgs e)
{
SortByDown();
textBox2.Text = string.Empty;
for (int idx = 0; idx < Lines.Count; idx++)
{
textBox2.Text += Lines[idx] + Environment.NewLine;
}
}
Результат


ЗЫ: исходник прилагается.

Спасибо=)

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