Как посчитать символы в windows form
windows forms как посчитать символы в listbox и вывести в label, чтобы каждый символ был в отдельных строках. К примеру в первой строке точки, запятые, во второй строчке слова, в третей цифры
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
int index = listBox1.SelectedIndex;
string str = (string)listBox1.Items[index];
string nums = "";
string chars = "";
string symbols = "";
char[] a = { 'выходные дни: 1, 2 января, 8 марта, 1 мая, 9 мая!' };
foreach (char item in str)
{
if (char.IsDigit(item))
{
nums += item;
}
else if (char.IsPunctuation(item))
{
symbols += item;
}
else
{
chars += item;
}
label1.Text += (nums);
label2.Text += (symbols);
label3.Text += (chars);
}
}
} }
Вот код, не из-за чего ошибка
Ответы (1 шт):
Автор решения: kva52
→ Ссылка
@Matematic. В вашем коде несколько ошибок. 1) попытка присвоить массиву символов a непонятно что. Строка записывается в двойных кавычках. Массив символов записывается например так {'а', 'b', 'c'}. Кстати, непонятно, где этот массив используется. 2) Непонятно, как нужно обрабатывать данные в listBox1, по выделенной строке или все строки разом. Ниже привожу пример и того и другого:
private void button1_Click(object sender, EventArgs e)
{
if (listBox1.SelectedIndex == -1)
return; //строка в listBox1 не выделена, выходим
//обработка только выделенной строки
int index = listBox1.SelectedIndex;
string str = (string) listBox1.Items[index];
string nums = ""; //цифровые символы
string symbols = ""; //Символы пунктуации
string chars = ""; //остальные символы
foreach (char item in str)
{
if (char.IsDigit(item))
nums += item;
else if (char.IsPunctuation(item))
symbols += item;
else
chars += item;
}
label1.Text = nums;
label2.Text = symbols;
label3.Text = chars;
}
private void button2_Click(object sender, EventArgs e)
{
//обработка всех строк
string nums = ""; //цифровые символы
string symbols = ""; //Символы пунктуации
string chars = ""; //остальные символы
foreach (object line in listBox1.Items)
{
foreach (char ch in (string) line)
{
if (char.IsDigit(ch))
nums += ch;
else if (char.IsPunctuation(ch))
symbols += ch;
else
chars += ch;
}
}
label1.Text = nums;
label2.Text = symbols;
label3.Text = chars;
}