Zum Inhalt springen

[C#] String rückwärts ausgeben


Empfohlene Beiträge

Geschrieben

Hallo Com,

ich habe folgendes Problem:

Ich habe eine Konsolenaplikation geschrieben:

     static void Main(string[] args)

        {

            int i;

            string Wort;

            Console.WriteLine("Geben sie bitte ihr Wort ein.");

            Wort = Console.ReadLine();

            for (i = 0; i < Wort.Length; i++) 

            {

                Console.WriteLine("Hallo I {0}",Wort[i]);


            }




            Console.ReadLine();


        } 

Hierbei gibt er das Wort eben vorwärts aus. Könntet ihr mir vielleicht sagen, wie ich es schaffen könnte, das Wort rückwärts auszugeben, da ich nicht die geringste Ahnung habe wie.

Danke schonmal für die Hilfe. :)

Geschrieben


     static void Main(string[] args)

        {

            int i;

            string Wort;

            Console.WriteLine("Geben sie bitte ihr Wort ein.");

            Wort = Console.ReadLine();

            for (i = 0; i < Wort.Length; i++) 

            {

                Console.WriteLine("Hallo I {0}",Wort[Wort.Length-i]);


            }




            Console.ReadLine();


        }


lg

Gateway

Geschrieben (bearbeitet)

Das ganze lässt sich auch mit weniger Aufwand realisieren.

Unter .NET 3.0 wurden für solche Fälle die sog. Extension Methods eingeführt. Ziel der ganzen Sache ist es, Typen zu ergänzen.

Und die Erweiterung der Strings um genau eine solche Reverse() ist ein Klassiker.

Bau Dir eine eigene Klassenbibliothek, wo all Deine Extensionmethods zusammenkommen, die Du dann in alle Projekte einbinden kannst. Oder hier für den Übungszweck erweitere Dein Programm um eine öffentliche, statische Klasse.

Öffentlich Statisch deshalb, weil die Methode ja überall und ohne Instanziierung zur Verfügung stehen soll.

Dort ergänzt Du eine statische,öffentliche Methode, die als Rückgabewert einen String besitzt und der Aufrufparameter ist (this string $Variablenname). Diese Signatur zeigt an, dass Du Dich auf den String-Typ beziehst.

Das ganze sieht dann ungefähr so aus:


public static class MyExtensionMethod
{
public static string Reverse(this string Text)
{
char[] TextArray = Text.ToCharArray();
Array.Reverse(TextArray);
return new string(TextArray);
}
}
[/PHP]

Du wandelst den übergebenen String in ein Char-Array um.

Das Array besitzt die Methode Reverse. Aus dem so veränderten Array generierst Du einfach einen neuen String, den Du zurückgibst :]

[PHP]Console.WriteLine("Probetext".Reverse());

Wäre dann ein möglicher Aufruf.

P.S.: Und das tolle daran... dieser Aufruf steht Dir dann überall da, wo die Klasse verfügbar ist, zur Verfügung.

P.P.S.: Extension Methods sind ein Mittel um alle Objekte zu erweitern. Das Prinzip ist immer das gleiche.

Bearbeitet von lilith2k3
Geschrieben

Also ein großes Dankeschön an euch für diese tollen Antworten. :)

Es ist echt schon faszinierend, dass man in C# solche Typen ergänzen kann.

Da ich noch nicht so lange mit C# programmiere und noch relativ ein Anfänger bin, ist es echt schon heftig was man alles damit machen kann.

Und danke für die Tipps lilith2k3.

Nochmals danke für die Hilfe. :)

Geschrieben
ist es echt schon heftig was man alles damit machen kann.

Jop! C# kommt dem Programmierer sehr entgegen. Das ist es auch, was in meinen Augen die Sprache vor bspw. Java auszeichnet.

Wenn Du Dir wirklich interessante Konzepte angucken willst, schau Dir am besten einemal folgendes an:

1) Anonyme typen

2) Anonyme Methoden/Lambda-Ausdrücke

3) LINQ


List<Produkte> ProduktListe = new List<Produkte>();

...


foreach(var Produkt in Produkte.Where((product)=>product.preis>25))
{
...
}
[/PHP]

[i].Where[/i] ist eine [i]Extensionmethod[/i] und [i]((product)=>product.preis>25)[/i] ist eine anonyme Funktion.

($Eingangsvariable) => {...} <- Funktionskörper, Klammer kann man auch wie oben gesehen weglassen

Schöner kann man nicht iterieren ... :]

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...