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);
}
