Loading...
Wazez avatar Wazez -7 Точки

Домашно по Информатика

В текстово поле се въвеждат три имена. При щракване върху бутона ОК, в етикет се извежда съобщение ,,Здравей" и първото име от текстовото поле.

Как да стане?

Пробвах със Substring обаче не е вариант.

Тагове:
0
C# Advanced
Thedi avatar Thedi 200 Точки

Здравей,
Има доста варианта за решаване на проблема.
 

Ако все пак държиш да използваш 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 най-вероятно не е най добрият, но просто като пример как можеш да го направиш.
 

1
23/11/2017 18:39:58
Wazez avatar Wazez -7 Точки

Много ти благодаря вторият вариант е най-хубав :)

0
23/11/2017 18:17:29
Thedi avatar Thedi 200 Точки

Няма значение от къде ти идва стринг-а. Ти имаш променлива "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 + "!";
        }

0
23/11/2017 17:57:36
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.