Loading...
Joro_Paspalev avatar Joro_Paspalev 23 Точки

9. Greater of Two Values - Как работи метода CompareTo()

Здравейте,

при решаване на тази задача се иска да направим сравнение между 2 стринга. Те се сравняват посредством метода CompareTo().

Като цяло си поиграх с различни стойнсти за двата стринга и разбрах каква е логиката.

Това което не разбирам е как точно се подреждат символите при сравнение на двата низа т.е ако сравня

"a".Compare("b") - резултата е -1, тъй като а е преди b

Ако сравня обаче "a".Compare("A") - ми връща пак -1, което според ASCII подредбата не е правилно, защото стойнста на a = 97 , а на A=65 т.е 65 е преди 97 и би трябвало да върне 1.

при сравняване на "!".Compare("a"); Символа "!" е със стойност 33, а "a"=97 в ASCII което връща резултат -1 и така е OK. 

От тук си правя извода че не гледа тази подредба. Търсих в документацията на MS но нищо не открих, затова ако някой знае моля да ми обясни или посочи линк където мога да видя кои символ е с първи приоритет пред останалия.

Благорадя!

Тагове:
0
Fundamentals Module
k.sevov avatar k.sevov 1077 Точки
Best Answer

Когато използваш CompareTo() стринговете не се сравняват директно по ASCII, а лексикографски по различни правила според зададената култура. За сравнение по ASCII може да използваш String.CompareOrdinal(). Повече информация можеш да видиш тук

0
09/06/2019 08:33:24
Iv_Konov avatar Iv_Konov 383 Точки

Здравей,

 

Според мен, навлизаш в метод, които по-трудно ще ти влезне от полза за тази задача.

 

Може да ползваш нещо от сорта:

(приеми input1/input2 като стрингове)

===

           if (formatType == "int")
            {
                num1 = int.Parse(input1);
                num2 = int.Parse(input2);
            }
            else if (formatType == "string" || formatType == "char")
            {
                num1 = input1[0];
                num2 = input2[0];
            }

===

 

После сравни с прости оператори (>= и <) num1 и num2, и накрая прецени кой input1/input2 да принтираш... Разбира се, вкарай си метод в решението, както е по задание.

 

Забележка: Относно стринговете  - по-голям е низът с по-заден първи символ (съгласно ASCII  подредбата)! 

 

Поздрави,

Иван

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