2012-03-27 12 views
-1

Wie tun Sie das folgende Format auf dieser ZeichenfolgeFormat String .NET C#

String contact_informaton_monday

Umrechnen in: ContactInformationMonday

Im Grunde tun die folgenden Dinge:

  1. Machen Sie das erste Zeichen Großbuchstaben (Ich habe kein Problem mit das)
  2. Ersetzen Sie jedes _ (next_letter) durch Entfernen des Unterstrichs und nur oberen Gehäuses den nächsten Buchstaben.

Danke

+2

Zeigen Sie uns immer Ihre Arbeit und wo Sie stecken geblieben sind. –

Antwort

2

So etwas wie dieses

var str = "contact_informaton_monday"; 
var sb = new StringBuilder(); 
foreach(var s in str.Split("_")) 
{ 
    sb.Append(s.Substring(0, 1).toUpper()); 
    sb.Append(s.Substring(1)); 
} 
str = sb.ToString(); 
1

Sie die Zeichenfolge geteilt durch das Zeichen "_". Danach geht es bergab.

1

Split string:

var s = "contact_informaton_monday"; 
var final = ""; 
foreach (var split in s.Split('_')) 
    final += split.Substring(0, 1).ToUpper() + split.Substring(1); 

oder reguläre Ausdrücke:

var s = "contact_informaton_monday"; 
s = Regex.Replace(s, @"(\b|_)[a-z]", e => e.Value.ToUpper()); 
s = Regex.Replace(s, "_", ""); 
// s=ContactInformationMonday 
1
str.Split("_").ForEach(x => char.ToUpper(x[0]) + x.Substring(1)).ToArray().Join(); 
2
var textInfo = new CultureInfo("en-US", false).TextInfo; 
var input = "contact_informaton_monday"; 
var output = string.Concat(
    input.Split('_').Select(i => textInfo.ToTitleCase(i)) 
); 
+0

Für das Beispiel wird dies funktionieren, aber 'ToTitleCase' wird den ersten Buchstaben von Wörtern wie und ect nicht groß schreiben. –

+0

@Ash Burlaczenko, [in der Regel Titelgehäuse konvertiert das erste Zeichen eines Wortes in Großbuchstaben] (http://msdn.microsoft.com/en-us/library/system.globalization.textinfo.totitlecase.aspx) (Abschnitt Bemerkungen)) – Alex

1
string outputWord = ""; 
string word = "contact_informaton_monday"; 
foreach (var s in word.Split('_')) 
{ 
    outputWord += s.Substring(0, 1).ToUpper() + s.Substring(1); 
}