Домашно по Информатика
В текстово поле се въвеждат три имена. При щракване върху бутона ОК, в етикет се извежда съобщение ,,Здравей" и първото име от текстовото поле.
Как да стане?
Пробвах със Substring обаче не е вариант.
В текстово поле се въвеждат три имена. При щракване върху бутона ОК, в етикет се извежда съобщение ,,Здравей" и първото име от текстовото поле.
Как да стане?
Пробвах със Substring обаче не е вариант.
Здравей,
Има доста варианта за решаване на проблема.
Ако все пак държиш да използваш Substring трябва да видиш индекса на първото разстояние и да отрежеш до него.
string name = "Pesho Petrov Goshev";
// Ще вземеш позицията на първото разстояние
int cutIndex = name.IndexOf(' ');
//Ще отреже всичко от началото до първото разстояние и ще го запише в новата променлива.
string firstName = name.Substring(0, cutIndex);
//firstName ще бъде първото име (Pesho)
Може да използваш ".split" и да го разделиш по разстояние след което да вкараш разделените части в масив и да вземеш първият елемент.
string name = "Pesho Petrov Goshev";
string[] nameTokens = name.Split(' ').ToArray();
//nameTokens[0] ще бъде първото име (Pesho)
Можеш по подобен начин, но без да използваш масив просто да вземеш първият елемент само.
string name = "Pesho Petrov Goshev";
string firstName = name.Split(' ').First();
//firstName ще бъде първото име (Pesho)
Може да използваш и Regex и да групираш всичко до първото разстояние, но това е за по напреднали.
string name = "Pesho Petrov Goshev";
string pattern = "([a-zA-Z]*)";
Match firstName = Regex.Match(name, pattern);
//firstName ще ти даде първото име (Pesho)
Този Regex най-вероятно не е най добрият, но просто като пример как можеш да го направиш.
Много ти благодаря вторият вариант е най-хубав :)
Няма значение от къде ти идва стринг-а. Ти имаш променлива "s" която е стринг и можеш върху всеки стринг да използваш ".split"
private void btnOK_Click(object sender, EventArgs e)
{
string s1;
string s = textBox1.Text;
s1 = s.Split(' ').First();
label2.Text = "Здравей, " + s1 + "!";
}
Нещо ето такова. Ако си получил данните правилно би трябвало да си работи.
Ако все пак държиш да използваш Substring трябва да видиш индекса на първото разстояние и да одрежеш до него. В момента ти режеш винаги първите 10 синвола Substring(0,10) когато имаш по късо или по дълго име пак ще си отрежеш 10 и не ти върши работа.
private void btnOK_Click(object sender, EventArgs e)
{
string s = textBox1.Text;
// Ще вземеш позицията на първото разстояние
int cutIndex = s.IndexOf(' ');
//Ще отреже всичко от началото до първото разстояние и ще го запише в новата променлива.
string firstName = s.Substring(0, cutIndex);
label2.Text = "Здравей, " + firstName + "!";
}