643 Stimmen

Den ersten Buchstaben einer Zeichenkette groß schreiben (mit maximaler Leistung)

Ich habe eine DetailsView mit einer TextBox und ich möchte die Eingangsdaten sein immer gespeichert mit dem erster Buchstabe in Großbuchstaben .

Exemple :

"red" --> "Red"
"red house" --> " Red house"

Wie kann ich das erreichen? Leistungsmaximierung ?


Hinweis :

Ausgehend von den Antworten und den Kommentaren unter den Antworten denken viele, dass es hier um die Kapitalisierung geht alle Wörter in der Zeichenkette. z.B. => Red House Ist es nicht, aber wenn es das ist, was Sie suchen suchen Sie nach einer der Antworten, in der TextInfo 's ToTitleCase Methode. (Anmerkung: Diese Antworten sind falsch für die tatsächlich gestellte Frage). Siehe TextInfo.ToTitleCase Dokumentation für Vorbehalte (berührt keine Wörter in Großbuchstaben - sie werden als Akronyme betrachtet; kann Buchstaben in der Mitte von Wörtern kleinschreiben, die nicht kleingeschrieben werden sollten, z. B. "McDonald" "Mcdonald"; nicht garantiert, dass alle kulturspezifischen Feinheiten in Bezug auf Großschreibregeln berücksichtigt werden).


Hinweis :

Die Frage lautet zweideutig die Frage, ob die Buchstaben nach dem ersten Buchstaben gezwungen a Kleinschreibung . Die akzeptierte Antwort geht davon aus, dass nur der erste Buchstabe sollte geändert werden . Wenn Sie Folgendes erzwingen wollen alle Buchstaben der Zeichenkette außer dem ersten klein geschrieben werden soll, suchen Sie nach einer Antwort, die ToLower y die nicht ToTitleCase enthalten .

10 Stimmen

@Bobby: Es handelt sich nicht um ein Duplikat: Im OP wird darum gebeten, den ersten Buchstaben einer Zeichenfolge groß zu schreiben, in der Frage im Link wird der erste Buchstabe jedes Wortes groß geschrieben.

2 Stimmen

@GvS: Die erste Antwort lautet sehr detailliert und der erste Code-Block ist genau wonach er sucht. Auch der Unterschied zwischen der Großschreibung aller Wörter und der Großschreibung nur des ersten Wortes ist nur eine Schleife.

2 Stimmen

Aber Sie sagten, und ich zitiere: "Machen Sie den ersten Buchstaben JEDES WORTES groß". Warum also "rotes Haus" --> "Rotes Haus"? Warum ist das "h" von "Haus" kein Großbuchstabe?

-7voto

Sebastien Robert Punkte 331
string s_Val = "test";
if (s_Val != "")
{
   s_Val  = char.ToUpper(s_Val[0]);
   if (s_Val.Length > 1)
   {
      s_Val += s_Val.Substring(1);
   }
 }

5 Stimmen

Was ist, wenn die Zeichenfolge nur 0 oder 1 Zeichen lang ist?

6 Stimmen

Das ist einfach falsch. Erstens lässt es sich nicht kompilieren, da Sie versuchen, ein Zeichen zurück in die ursprüngliche Zeichenfolge zu schreiben. Zweitens, wenn Sie ToString zu Zeile 4 hinzufügen, um es zu kompilieren, ist das Ergebnis immer nur das erste Zeichen als Großbuchstabe und die Zeilen 5-8 werden zu unerreichbarem Code.

-7voto

Der einfachste und schnellste Weg ist, das erste Zeichen der Zeichenkette durch einen Großbuchstaben zu ersetzen:

string str = "test";<br>
str = str.Replace(str[0], char.ToUpper(str[0]));

0 Stimmen

Diese Antwort ist falsch, weil sie jede Instanz des ersten Buchstabens blind aktualisiert. "red horse" wird "Red hoRse"

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X