1

スペースのない文字列を適切な文に変換する方法はありますか?? たとえば、「WhoAmI」は「Who Am I」に変換する必要があります。

4

3 に答える 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 に答える