C# :: Aufgabe #400

1 Lösung Lösung öffentlich

Ziffern durch Kleinbuchstaben ersetzen (right-shifting)

Anfänger - C# von JKooP - 22.05.2021 um 16:57 Uhr
Gegeben ist ein String (Text) bestehend aus Kleinbuchstaben und den Ziffern 0 bis 9.
Die Buchstaben stehen an den geraden und die Ziffern an den ungeraden Stellen (zero-based).
Ziel soll es sein, jede Ziffer durch einen Buchstaben zu ersetzen, indem der vorangestellte Buchstabe
um den Wert der Ziffer gemäß Alphabet nach rechts verschoben wird (right-shifting).
Die Buchstaben bleiben dabei erhalten.
Bei der Erstellung des Ausgangs-Strings soll darauf geachtet werden, dass das Verschieben nicht über 'z' hinausgeht.

Beispiele:

s = "a1c1e1"
Lösung: "abcdef", denn
a >> 1 -> b
c >> 1 -> d
e >> 1 -> f

s = "a4b2c1d5"
Lösung: "aebdcddi", denn
a >> 4 -> e
b >> 2 -> d
c >> 1 -> d
d >> 5 -> i

Erstelle eine Methode/Funktion, die obige Aufgabenstellung umsetzt.
Wer möchte kann die Aufgabe dahingehend erweitern, dass über 'z' hinaus
verschoben wird und das Alphabet von vorne beginnt.

Viel Spaß

Lösungen:

4 Kommentare
vote_ok
von JKooP (18070 Punkte) - 18.07.2021 um 10:42 Uhr
NET 5.x; C# 9.x; VS-2019
Quellcode ausblenden C#-Code
System.Console.WriteLine(ReplaceDigits("a4b2c1d5"));

static string ReplaceDigits(string s)
{
    var t = s.ToCharArray();
    for (int i = 1; i < t.Length; i+=2)
        t[i] = (char)(t[i - 1] + t[i] - '0');
    return new string(t);
}