[C#] Домашно Strings and Text Processing - 2 задача


5

Условие: Write a program that reads a string, reverses it and prints the result at the console.

Решениеsource.

Обяснение: Преобразуваме стринга в масив от чарове за да можем да използваме Array.Reverse(). След това го отпечатваме на конзолата.




Отговори



22

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

Първо: Да си припомним какво е overload-нат метод - това е мотед с едно име, но с различни параметри, които му се подават. В случая с Console.WriteLine() имаме 19 overload-нати метода.

РЕШЕНИЕ: => http://pastebin.com/U6isvy7J

ОБЯСНЕНИЕ:

1. Първо въвеждам string str = "abcd"

2. Използвам метода str.ToCharArray() върху string-a и го присвоявам на      char[ ] strArr за да направя string-a масив от чарове.

3. Reverse-вам масива-a с Array.Reverse(strArr),

ТУК ИДВА ИНТЕРЕСНОТО

4. Тук вече принтирам на конзолата масива, но не как да е, а директно с Console.WriteLine(strArr), а както знаем един масив (int[ ] или какъвто и да е) ако го принтираш директно - като резултат ти връща System.Int32[ ]  и за това трябва да го обходим с for или foreach цикъл.

Char масив НЕ трябва да го обхождаме, а можеме директно да го принтнеме с Console.WriteLine. Това се дължи на факта, че единият от overload-натите методите на Console.WriteLine е за char масив, това е 4-ят който е Console.WriteLine(char buffer) - където char buffer е самият масив

 

Също така има още един метод 16-ят :

Console.WriteLine(char buffer, int index, int count) - като мястото на char buffer задаваме масива например strArr, на int index задаваме от кой индекс да започне, а на int count задаваме до каква дължина да принтиме. Прилича малко  на метода .substring, само че за char масив.

Да си припомним какво е overload-нат метод - това е мотед с едно Име, но с различни параметри които му се подават в случая с Console.WriteLine() имаме 19 overload-нати метода.

 

Как да разгледаме overload-натите методи на даден метод:

За тези който не са се сблъсквали или не са разглеждали overload-натите методите на някой метод може да ги разглеждат като: когато отворите първата скоба на някой метод може да ги разцъкате нагоре надолу с стрелките и там пише 1 от 19 , 5 от 19  - в конкретния случай за Console.WriteLine()

 

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

Асси


от Assi.NET (3050 точки)


0
Много ми хареса, особено с разпечатването само с името на масива, като в конвенционалния С. Следователно, общоприетото разпечатване на целия масив само със задаване на името е в сила и тук, а стринговете са по-специални обекти :)

от ellapt (6303 точки)

0
И на мен ми хареса и се поразрових да видя защо само с char е така. И за това реших да го споделя ;)

от Assi.NET (3050 точки)


0

Решение: source

Преобразувам стринга в масив от символи. Обръщам го с Array.Reverse(), създавам нов обект от стринг с него и печатам на конзолата.


от stanchev (197 точки)


0

Решение.

Обяснение: Стрингът се въвежда от потребителя, а след това се обръща в създадения метод ReverseText(). Обръщането става чрез класа StringBuilder и метода му Append().


от cchapo (583 точки)


1

GitHub

Array.Reverse след като преобразувам входния текст в char array


от dzhenko (3893 точки)


0

В моето решение, използвам StringBuilder и прочитам string-а отзад напред, като за целта използвам метода Append().


от gradev (1661 точки)