[C#] Erster Buchstabe eines Strings in einen Großbuchstaben konvertieren



  • Hallo zusammen,

    wenn ich einen String habe wie z.B.

    string str = "PROBE";
    

    und dann die Methode

    string klein;
    klein = str.ToLower();
    

    werden ja alle Großbuchstaben in Kleinbuchstaben umgewandelt. Wenn ich aber den ersten Buchstaben immer groß haben möchte, wie geht das? Eigentlich eine triviale Sache doch ich kenne die Methoden nicht so gut.

    Es soll also später dann in der str-Variablen "Probe" stehen.

    Danke für eure Hilfe!
    Gruß



  • Wie wär's hiermit:

    str = str[0].ToString().ToUpper() + str.Substring(1);
    


  • Ja danke, nach sowas habe ich gesucht...

    Mir ist aufgefallen, dass ich es noch ein bisschen komplexer brauch.
    Im moment gehe ich so vor, dass ich alle Strings erst mal separiere und dann einzeln die Großbuchstaben zuweise:

    System.Text.StringBuilder sb = new System.Text.StringBuilder();
    
                                foreach (string str in kleinbuchstaben.Split(' ','-'))
                                {
                                    if (str.Length > 0)
                                    {
                                        sb.Append(str.Substring(0, 1).ToUpper() + str.Substring(1) + " ");
                                    }
                                }
    

    Wenn ich nun einen String wie diesen reingeben

    string = "ref.-nr"
    

    , dann wird folgender String darauf gemacht:

    -> "Ref. Nr"

    Wie kann ich aber dafür sorgen, dass das Trennzeichen, dass ich vorher als Seperator angegeben habe auch wieder in dem Resultatstring vorhanden ist?

    also "Ref.-Nr"

    Vielen Dank



  • Vielleicht so:

    static void Main(string[] args)
            {
                int i;
                string[] split;
                string str = "ref.-nr-12";
                string Ergebnis = "";
    
                split = str.Split('-');
                for (i = 0; i < split.Length - 1; i++)
                    Ergebnis += FirstCharToUpper(split[i]) + '-';
                Ergebnis += FirstCharToUpper(split[i]);
                Console.WriteLine(Ergebnis);
                Console.ReadKey();
            }
    
            static string FirstCharToUpper(string str)
            {
                return str[0].ToString().ToUpper() + str.Substring(1);
            }
    


  • Ah, sowas macht man mit regulären Ausdrücken und Callback:

    string test = "dies ist ein kleiner lümmel-test.";
    Regex rx = new Regex(@"\b(\w)");
    string result = rx.Replace(test, delegate(Match m) { return m.Groups[1].Value.ToUpper(); });
    


  • Konrad Rudolph schrieb:

    Ah, sowas macht man mit regulären Ausdrücken und Callback

    GANZ SICHER MACHT MAN SOWAS N I C H T MIT REGULAEREN AUSDRUECKEN!!!!!!



  • bestimmt nich schrieb:

    Konrad Rudolph schrieb:

    Ah, sowas macht man mit regulären Ausdrücken und Callback

    GANZ SICHER MACHT MAN SOWAS N I C H T MIT REGULAEREN AUSDRUECKEN!!!!!!

    1. Caps lock aus.
    2. Begründung.
    3. Was ist an meinem Code auszusetzen?
    4. Du bist mir unsympathisch.

    /EDIT: *richtig* unsympathisch.



  • *1. Caps lock aus.
    2. Begründung.
    3. Was ist an meinem Code auszusetzen?
    4. Du bist mir unsympathisch.

    /EDIT: *richtig* unsympathisch.*

    1. WARUM?
    2. MAN SCHIESST NICHT MIT KANONEN AUF SPATZEN!
    3. ER IST HALT EINFACH NUR SCHEIE.
    4. ICH KANN KLUGSCHEI
    ER AUCH NICHT LEIDEN!



  • bestimmt nich schrieb:

    4. ICH KANN KLUGSCHEI*ER AUCH NICHT LEIDEN!

    Selbsthass ist schon schlimm. Überlass das lieber anderen, die übernehmen das gerne für Dich.

    Zu den Kanonen vs. Spatzen kann ich nur sagen, dass ich Löcher auch mit einer Schlagbohrmaschine in die Wand bohre und nicht mit einem manuellen Bohrer, selbst wenn der theoretisch reicht. Wenn man keinen triftigen Performance-Grund hat, um sie zu meiden, kann und soll man reguläre Ausdrücke als Tool ruhig benutzen, wenn es sich anbietet. In anderen Sprachen macht man jeden noch so kleinen Dreck mit regulären Ausdrücken und niemand regt sich darüber auf; da fällt es nur weniger auf, weil das in der Syntax verankert ist.



  • bestimmt nich schrieb:

    1. WARUM?

    Weil es unhöflich ist, die Leute anzuschreien (und Großschreibung wird als "Schreien" angesehen).

    (außerdem sind Beiträge in Großbuchstaben auch deutlich schwerer zu lesen)



  • Eingen wir uns darauf das beides Funktioniert. Welches der Entwickler nimmt bleibt ihm überlassen und sollte er selbst herausfinden.
    Deshlab muss man sich nicht anpflaumen.


Anmelden zum Antworten