Отсортировать слова в строке
Вопрос стоит так:
Как отсортировать слова в строке по возрастанию или по убыванию?
Например я считал строку "Love as expensive crystal, you with it be cautious!" из файла.
Выбрал все слова без всяких знаков в новую строку
Код:
string[] ar = a.Split(new Char[] { ' ', ',', '.', ':', '!', '?', ';' }, StringSplitOptions.RemoveEmptyEntries);
Буду рад примеру в виде кода=))
Код:
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;
}
}
{
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;
}
}
ЗЫ: исходник прилагается.
Цитата: 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;
}
}
{
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;
}
}
ЗЫ: исходник прилагается.
Спасибо=)