StephanP Geschrieben 1. August 2009 Geschrieben 1. August 2009 Hallo, beschäftige mich gerade mit C# und möchte, das eine Eingabe so bearbeitet wird, das jeder Anfangsbuchstabe groß geschrieben wird. Das bei einem Satz, bzw. bei der Eingabe von mehreren Wörtern die Wörter einzeln erkannt werden, habe ich bereits hinbekommen (mit str.Split) und entsprechenden Trennzeichen. Kann mir vielleicht jemand einen Denkanstoß geben? Vielen Dank! Zitieren
0815FIA Geschrieben 1. August 2009 Geschrieben 1. August 2009 private List<String> ConvertFirst2UpperCase(List<String> words) { char[] word; List<String> first2Upper = new List<String>(); for (int i = 0; i < words.Count; i++) { word = new char[words[i].Length]; word = words[i].ToCharArray(); //(char[])words[i]; word[0] = Convert.ToChar((word[0].ToString()).ToUpper()); first2Upper.Add(Convert.ToString(word)); } return first2Upper; } So müßte es klappen, mußt natürlich deine gefüllte Liste mit Worten als den Parameter übergeben. Zitieren
JasonDelife Geschrieben 1. August 2009 Geschrieben 1. August 2009 So in etwa (Nicht getestet!): string phrase = "The quick brown fox jumps over the lazy dog"; string[] words = phrase.Split(new char[] { ' ' }); for(int i = 0; i < words.Length; ++i) { string word = words[i]; words[i] = word[0].ToUpper() + word.Substring(1); } phrase = string.Join(" ", words); Grüße, JasonDelife. Zitieren
0815FIA Geschrieben 1. August 2009 Geschrieben 1. August 2009 Oh mein Gott, wir bauen hier irgendwelchen Kram, und dann finde ich das hier: TextInfo.ToTitleCase Method (System.Globalization) manmanman... Zitieren
StephanP Geschrieben 2. August 2009 Autor Geschrieben 2. August 2009 Funktionert wunderbar! Ich frage mich allerdings, wie man auf den Namespace kommen soll, um auf die ensprechende Methode zu kommen. Letzendlich führen bekanntlich viele Wege ans Ziel. Ich bedanke mich bei Euch Zitieren
StephanP Geschrieben 2. August 2009 Autor Geschrieben 2. August 2009 Hallo JasonDelife, bei der angegebenen Lösung erscheint die Fehlermeldung: Fehler 2 Keine Überladung für die ToUpper-Methode nimmt 0 Argumente an. So richtig schlau bin ich daraus nicht geworden. Kannst Du mir vielleicht erklären,was da schief läuft? So in etwa (Nicht getestet!): string phrase = "The quick brown fox jumps over the lazy dog"; string[] words = phrase.Split(new char[] { ' ' }); for(int i = 0; i < words.Length; ++i) { string word = words[i]; words[i] = word[0].ToUpper() + word.Substring(1); } phrase = string.Join(" ", words); Grüße, JasonDelife. Vielen Dank und noch nen schönen Sonntag Zitieren
0815FIA Geschrieben 2. August 2009 Geschrieben 2. August 2009 Das bedeutet, das (angeblich) keine Überladung dieser Methode mit 0 übergebenen Parametern vorhanden ist. Lustig ist nur, das es definitiv eine mit 0 Parametern gibt :/ Zitieren
StephanP Geschrieben 2. August 2009 Autor Geschrieben 2. August 2009 public List<String> ConvertFirstToUpper(List<String> text) { for (int i = 0; i < text.Count; i++) { text[i] = text[i][0].ToString().ToUpper() + text[i].ToString().Substring(1); } return text; } Vielen vielen Dank an alle, die in diesem Thread geholfen haben. jetzt müsste man ihn nur noch als gelöst markieren können :floet: Zitieren
0815FIA Geschrieben 2. August 2009 Geschrieben 2. August 2009 Ähm ja, meine Aussage war auch falsch, in JasonDelifes Beispiel wird ja die Char.ToUpper() Methode genutzt, nicht die aus String Zitieren
Empfohlene Beiträge
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.