Odwracanie tekstu - problem ze zwróceniem wartości

0

Hej, mam zadanie:" Napisz metodę string Odwroc(string tekst), która zwróci tekst odwrócony, tzn. wyrazy w tekście tekst w odwróconej kolejności (ala ma kota -> kota ma ala)"

Napisałem taki kod:

 static string Odwroc(string tekst)
        {
            string[] nowy = tekst.Split(' ');
            string[] nowy2 = new string[nowy.Length];
            for (int i = 0; i < nowy.Length/2; i++)
            {
                nowy2[i] = nowy[nowy.Length - 1 - i];
            }
            string nowy3 = nowy2.ToString();
            return nowy3;

        }

Dlaczego po wywołaniu

 Console.WriteLine(Odwrc("przykladowytekst"));

zwraca mi wartość system.string[], zamiast oczekiwanego tekstu? Szczególnie, że

 nowy3

jest stringiem, a nie tablicą.

Będę wdzięczny za wszelką pomoc i wyjaśnienie ;)

0

Przyjrzyj się typom Twoich lokalnych zmiennych.

1

Do nowy3 przypisałeś przecież nowy2.ToString() a nowy2 to tablica. Skąd pomysł, że ToString() na tablicy zwróci Ci jej zawartość w 1 stringu?

1

Rozbij zdanie tak jak to robisz Splitem a następnie przeleć sobie tablicę od końca i będziesz miał to co chcesz.
Mniej więcej coś w tym stylu:

string[] tab = zdanie.Split(' ');
string wynik = "";
for(int i=tab.Length-1;i>=0;i--)
{
   wynik+=tab[i]+" ";
}
0

Dzięki wszystkim,
finalny kod:

  static string Odwroc(string tekst)
        {
            string[] nowy = tekst.Split(' ');
            string wynik = "";
            for (int i = 0; i < nowy.Length; i++)
            {
                wynik += nowy[nowy.Length - 1 - i] + " ";
            }
            return wynik;

        }

I działa :) Dzięki!

2

Można to też zrobić krócej:

static string Odwroc(string tekst)
{
    return string.Join(" ", tekst.Split(' ').Reverse());
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1