スペースのない文字列を適切な文に変換する方法はありますか?? たとえば、「WhoAmI」は「Who Am I」に変換する必要があります。
3 に答える
8
各大文字の前にスペースを挿入することについて話しているだけの場合、正規表現の置き換えはこれを行います:
using System;
using System.Text.RegularExpressions;
class Test
{
static void Main()
{
var input = "WhoAmI";
var output = Regex.Replace(input, @"\p{Lu}", " $0").TrimStart();
Console.WriteLine(output);
}
}
ただし、重要なコーナーケースがあると思います。上記は、ASCII 以外の大文字に対処するため\p{Lu}
だけに使用するのではなく、使用していることに注意してください。ASCII のみを処理する必要がある場合[A-Z]
は、より簡単になる可能性があります。A-Z
呼び出しは、TrimStart()
そうでなければ得られる先頭のスペースを削除することです。
于 2012-12-15T09:19:10.617 に答える
0
文字列内のすべての単語が大文字で始まる場合、大文字で始まる各部分をスペースで区切られた文字列に変換できます。
于 2012-12-15T09:19:38.730 に答える
0
LINQを使用できます
string words = "WhoAmI";
string sentence = String.Concat(words.Select(letter => Char.IsUpper(letter) ? " " + letter
: letter.ToString()))
.TrimStart();
于 2012-12-17T14:33:12.503 に答える