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 ... :]

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

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...