Loading...
vdzhambazova avatar vdzhambazova 6 Точки

[Inheritance - C# OOP June] Problem 2. Book Shop - проблем с валидиране на Author

Здравейте, някой може ли да ми предложи някакъв по-лесен и четим начин за валидидане на Author, защото моят начин ми се струва доста измислен.

Благодаря предварително:) 

http://pastebin.com/MQXSkvZq

 

 

 

Тагове:
0
C# OOP Basics 04/07/2016 17:02:12
vancho avatar vancho 430 Точки
Best Answer

Направи един сплит на стринга по спейс и една if проверка, ако дължината на масива е по-голяма от 1, тогава проверявай второто име от сплита. Да ли не е null на първо място, празен стринг и тогава за число.

-1
04/07/2016 17:19:32
vdzhambazova avatar vdzhambazova 6 Точки

Благодаря, явно няма по-прост начин :)

0
plamen83 avatar plamen83 4 Точки

ne e li po pravilno da setnem cenata na GoldenEditionBook :

    public override decimal Price {protected set => base.Price = value * 1.3m; }

otkolkoto da pazim gre6na cena v poleto?

 

0
13/08/2018 15:46:10
Filkolev avatar Filkolev 4482 Точки

Предполагам, че може да се ползва някакъв прост регулярен израз. Упражнявали ли сте регекси? Какво е условието за валидни данни?

0
vdzhambazova avatar vdzhambazova 6 Точки

Условието е: Тhe author’s second name shouldnt start with a digit.

Упражнявали сме ама не се сетих как мога да го вмъкна в setter-a

0
Filkolev avatar Filkolev 4482 Точки

За да се ползват регулярни изрази е важно да има пълна яснота какво точно се търси. Да не започва с цифра е лесно: [^\d].*

Но трябва да се види какви символи са позволени и какви не, за да се състави верен израз.

0
vancho avatar vancho 430 Точки

Иначе аз съм го направил с регекс, ама не мисла, че по-просто.

-1
krasi_beck avatar krasi_beck 3 Точки

public string Author
        {
            get
            {
                return this.author;
            }
            set
            {
                var split = value.Split();
                if (split.Length == 1)
                {
                    if (char.IsNumber(split[0][0]))
                    {
                        throw new ArgumentException("Author not valid!");
                    }
                }
                else
                {
                    if (char.IsNumber(split[1][0]))
                    {
                        throw new ArgumentException("Author not valid!");
                    }
                }
                this.author = value;
            }

0
nick.genov avatar nick.genov 104 Точки

Здравейте,

Ще използвам темата, за да задам и аз един въпрос за същата задача. Това е решението ми:

http://pastebin.com/T1kaT13c

 

Условието е леко омазано (джава код в примерите, подредбата на аргументите в условието и в кода за мейн метода, уж предоставеният валиден код за override ToString трябва да се модифицира, за да излезе втория нулев тест - който тест го има само в Judge, и други).

Тъй като съм онлайн и не присъствам на упражненията на живо, подозирам, че има някакви други указания за успешно решение, освен описаните в условието.

Та въпроса е - какво не е изпълнено в моето решение?

0
05/07/2016 11:46:23
Ivailo_Kodov avatar Ivailo_Kodov 97 Точки

Това е от мен .. аз това измислих като най-пестеливо :))

public string Author
  set
  {
  var name = value.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
  if (name.Length > 1 && char.IsDigit(name[1][0]))
  {
  throw new ArgumentException("Author not valid!");
  }
1
mrfreeman avatar mrfreeman 11 Точки

С помощта на коментарите в тази тема успях да добутам задачата до 80/100 като на първия тест излиза Runtime error. Смених типа на "price" да бъде decimal, пак същото

 

ето го кода ако някой забележи къде е пропуска: https://pastebin.com/rWRhcnQb

 

Edit: След първия catch блок добвям

            catch (Exception)
            {
                Console.WriteLine("Title not valid!");//?
            }

и изкарва 100/100 но пак не можах да разбера какъв е проблема с валидацията на Title. В условието се казва единствено, че дължината не трябва да е по-малко от 3 символа.

0
14/04/2017 13:00:52
HristoGrigorov avatar HristoGrigorov 8 Точки

Някой знае ли инпута за втория тест, че ми гърми с грешка при компилиране. Пробвах доста тестове но така и не уцелих инпут, който да гърми при компилирането. Явно бъркам някъде но съ зациклил и не виждам къде. А ето го и кода ми:  https://pastebin.com/ZvUX5kCu

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