C# :: Aufgabe #357
2 Lösungen

Text gemäß Vorlage neu sortieren
Anfänger - C#
von JKooP
- 12.02.2021 um 09:53 Uhr
Ein durcheinandergeratener Text soll gemäß einer Vorlage (Array) neu sortiert werden.
Dazu soll eine Methode/Funktion erstellt werden, mit der man die Zeichen des
Ausgangstextes gemäß den vorgegebenen Positionen im Array neu anordnet.
Ausgangstext = "programmyourtrainer"
Array = [ 9, 10, 11, 12, 13, 14, 15, 16, 5, 6, 7, 8, 0, 1, 2, 3, 4, 17, 18 ]
Zieltext = "trainyourprogrammer"
Erläuterung:
Das erste Zeichen des Ausgangstextes (p) muss gem. Array an die 9. Position.
Das Zeichen (y) muss an die 5. Position. Achtung: Array ist nullbasiert!
_ _ _ _ _ y _ _ _ p _ _ _ _ _ _ _ _
Viel Spaß
Dazu soll eine Methode/Funktion erstellt werden, mit der man die Zeichen des
Ausgangstextes gemäß den vorgegebenen Positionen im Array neu anordnet.
Ausgangstext = "programmyourtrainer"
Array = [ 9, 10, 11, 12, 13, 14, 15, 16, 5, 6, 7, 8, 0, 1, 2, 3, 4, 17, 18 ]
Zieltext = "trainyourprogrammer"
Erläuterung:
Das erste Zeichen des Ausgangstextes (p) muss gem. Array an die 9. Position.
Das Zeichen (y) muss an die 5. Position. Achtung: Array ist nullbasiert!
_ _ _ _ _ y _ _ _ p _ _ _ _ _ _ _ _
Viel Spaß
Lösungen:

using System; namespace BuchstabenUmsortieren { class Program { static void Main(string[] args) { string Ausgangstext = "programmyourtrainer"; int[] order = new int[] { 9, 10, 11, 12, 13, 14, 15, 16, 5, 6, 7, 8, 0, 1, 2, 3, 4, 17, 18 }; char[] result = new char[Ausgangstext.Length]; int counter = 0; foreach (char letter in Ausgangstext) { result[order[counter++]] = letter; } Console.WriteLine($"result: {new String(result)}"); } } }
NET 5.x; C# 9.x; VS-2019
C#-Code

using System; var s = "programmyourtrainer"; var i = new int[] { 9, 10, 11, 12, 13, 14, 15, 16, 5, 6, 7, 8, 0, 1, 2, 3, 4, 17, 18 }; Console.WriteLine(RestoreString(s, i)); static string RestoreString(string s, int[] indices) { var arr = new char[indices.Length]; var k = 0; foreach (var i in indices) arr[i] = s[k++]; return new string(arr); }