2011-08-09 33 views
5

可能性の重複:私のような文字列を変更したいMyUnsolvedProblem文字列から大文字のインデックスを取得します


An algorithm to "spacify" CamelCased strings

私はこのような文字列を持っていますこの:My Unsolved Problem

私はそれをどのように行うことができますか?私は運がないRegexを使ってみました!それは場合に役立ちます私はC#でそれを行う方法の提案を提供することができます

var s = "MyUnsolvedProblem"; 
var result = string.Concat(s.Select(c => char.IsUpper(c) ? " " + c.ToString() : c.ToString())) 
    .TrimStart(); 

答えて

10
var result = Regex.Replace("MyUnsolvedProblem", @"(\p{Lu})", " $1").TrimStart(); 

正規表現でもそれを行う方法ですが、これは一つの選択肢です。

5
resultString = Regex.Replace("MyUnsolvedProblem", "([a-z])([A-Z])", "$1 $2"); 
1

String PreString = "getAllItemsByID"; 

System.Text.StringBuilder SB = new System.Text.StringBuilder(); 

foreach (Char C in PreString) 
{ 
    if (Char.IsUpper(C)) 
     SB.Append(' '); 
    SB.Append(C); 
} 

Response.Write(SB.ToString()); 

を私があることを確信している正規表現がなければ

1

LINQベースのアプローチ:

string data = "TestStringData"; 
var converted = data.Select(x => Char.IsUpper(x) ? String.Concat(" ", x) : x.ToString()); 
var singleString = converted.Aggregate((a, b) => a + b); 
関連する問題