Loading...
ivan.d.uzunov avatar ivan.d.uzunov 22 Точки

Проблем със 13.Split_by_Word_Casing от Arrays and Lists Lab

http://pastebin.com/f3EaVDFL

 

В изхода някои елементи ми излизат в грешната група (lowercase, mixedcase or uppercase). Освен това при lowercase ми излизат адски много запетай, а уж в началото ги изключвам в Split(). Помощ?

0
Programming Fundamentals 09/10/2016 15:43:51
Pilgrimage avatar Pilgrimage 515 Точки
Best Answer

Ето да разгледаш едно решение, базирано на примера на Наков от предния курс:
http://pastebin.com/eDz9vSLY

0
ivan.d.uzunov avatar ivan.d.uzunov 22 Точки

Аха ясно. Благодаря Общо взето от това което видях до сега, като говорим за List не е удачно да се използва for loop, и по скоро foreach, нали така?

0
Pilgrimage avatar Pilgrimage 515 Точки

Ако само ще четеш листа (или масива) - да, но ако ще променяш нещо в него, ще ти трябва for.

Едит:

Примерният код е излишно усложнен, защото Наков демонстрира използването на потребителски типове данни, така, че има и по-просто решение.

0
09/10/2016 16:19:56
Pilgrimage avatar Pilgrimage 515 Точки

Като гледам кода ти, мисля, че не си разбрал правилно условието на задачата.

С тези .ToLower() и .ToUpper()  ти модифицираш стринга, вместо само да го сравняваш.

Edit:

Трябва всяка една дума да провериш символ по символ (буква по буква) дали не е в горния регистър, което най-лесно става като превърнеш буквата в char  и с функциите :
char.IsUpper();

char.IsLower();

които връщат булева стойност.

Ако всички букви в думата са малки - отива в графа "малки", ако са големи - отива в категорията "големи", а ако броят на големите или малките преброени букви не е равен на дължината на думата - отива в Mixed.

0
09/10/2016 15:59:35
Soprin avatar Soprin 105 Точки

Много запетаи ти излизат заради Empty entries.. Трябва след Split() да избереш string format options remove empty entries мосля че беше.

 

0
Pilgrimage avatar Pilgrimage 515 Точки

Да, това го има в примерния код към който съм дал линк.

Но за да можеш да използваш тази опция, като разделител трябва да използваш масив от char-ове. т.е. char[].

Е, в него може да има и само един разделител. :-)

0
Soprin avatar Soprin 105 Точки

input.Split(new char[] { ' ', ';', ',', ':', '.', '!', '(', ')', '\'', '\"', '\\', '/', '[', ']' },StringSplitOptions.RemoveEmptyEntries).ToList();

аз съм ги сплитнал така и работи.

0
Pilgrimage avatar Pilgrimage 515 Точки

Да, дали char[] ще е дефиниран отделно или в самия ред - няма значение, ще работи.
Но примерно това :
input.Split(' ', StringSplitOptions.RemoveEmptyEntries).ToList();

уви, не работи :-(. 

Не е съгласно да има опции и това си е! :-)

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