Feedback

Ganze Zahl Invertieren (Umdrehen)

Sprache: C#

Da es mit sicherheit noch eine kürzere version gibt, freue ich mich über jegliche kommentare 😉 Hier mal die Version über string und Array,..
public static int ZahlInvertieren(int zahl)
        {
            string zahlzerlegen = Convert.ToString(zahl);
            int[] zahlArray = new int[zahlzerlegen.Length];
            string zahlInvertiertString = null;

            for (int i = 0; i < zahlzerlegen.Length; i++)
            {
                zahlArray[i] = (Convert.ToInt32(zahlzerlegen[i]) - 48);
            }
            Array.Reverse(zahlArray);
            for (int i = 0; i < zahlzerlegen.Length; i++)
            {
                zahlInvertiertString += Convert.ToString(zahlArray[i]);
            }
            int zahlInvertiert = Convert.ToInt32(zahlInvertiertString);
            return (zahlInvertiert);
        }
public static int ZahlInvertieren(int zahl)
        {
            string zahlzerlegen = Convert.ToString(zahl);
            int[] zahlArray = new int[zahlzerlegen.Length];
            string zahlInvertiertString = null;

            for (int i = 0; i < zahlzerlegen.Length; i++)
            {
                zahlArray[i] = (Convert.ToInt32(zahlzerlegen[i]) - 48);
            }
            Array.Reverse(zahlArray);
            for (int i = 0; i < zahlzerlegen.Length; i++)
            {
                zahlInvertiertString += Convert.ToString(zahlArray[i]);
            }
            int zahlInvertiert = Convert.ToInt32(zahlInvertiertString);
            return (zahlInvertiert);
        }

3 Kommentare

  1. Hm, am Ende wird sowas sicher immer über Strings und Arrays laufen, wie auch sonst.
    Kürzere Schreibweise geht z. B. mit ein wenig „Linq-Magic“: ;)[code]public static int ZahlInvertieren2(int zahl)
    {
    return int.Parse(zahl.ToString().Reverse().Aggregate(new StringBuilder(), (sb, c) => sb.Append(c)).ToString());
    }[/code]

  2. Es geht auch ganz ohne String und sogar für negative Zahlen.

    [code]
    public static int ZahlInvertieren2(int zahl)
    {
    int returnValue = 0;
    while (zahl != 0)
    {
    returnValue *= 10;
    returnValue += zahl % 10;
    zahl /= 10;
    }
    return returnValue;
    }
    [/code]