Loading...
karlite avatar karlite 20 Точки

[Exercise] Unhandled Exception!

Добър ден колеги.

Снощи решавах една задача и исках да изкарам даден стринг и да го парсна... Но ми крашваше и крашваше...Знам че може да се направи по различен начин, но ме интересува защо конкретното решени ми дава Exception. Благодаря предварително.

        string cmdRow = "10 10 =";
        Console.WriteLine(cmdRow.IndexOf(" ")); //Наблюдавам кой индекс ще ми изкара 
        Console.WriteLine(cmdRow.LastIndexOf(" ")); //Наблюдавам кой индекс ще ми изкара 
        string str = cmdRow.Substring(cmdRow.IndexOf(" ") + 1, cmdRow.LastIndexOf(" "));
     

В дадения код искам да изкарам второто число...  

Тагове:
0
Programming Basics
Ivaylo.Goranov avatar Ivaylo.Goranov 68 Точки

Здравей,

Проблемът е в последния ред от кода. Там преминаваш границите на стринга, а в C# не можеш да преминеш границите на масив/стринг. Винаги получаваш като изход "Index out of range exception".

В случая това е така, защото:

Първо пействам кода, за да мога да обясна по-онагледено.

string cmdRow = "10 10 =";
string str = cmdRow.Substring(cmdRow.IndexOf(" ") + 1, cmdRow.LastIndexOf(" "));

Substring метода извлича подстринг, започващ от даден индекс на изходния стринг (аргумент 1) и имащ съответната дължина (аргумент 2).
Ти задаваш като аргумент 1 стойност 3.
За аргумент 2 задаваш стойност 5.
И така излизаш с една позиция извън границите на изходния стринг с дължина 7.

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

Лек ден и приятно решаване на задачите.

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