簡體   English   中英

C#字符串到句子

[英]C# string to sentence

有沒有一種方法可以將沒有空格的字符串轉換為合適的句子? 例如,“ WhoAmI”需要轉換為“我是誰”

如果您只是在談論在每個大寫字母之前插入一個空格,則用正則表達式替換可以做到這一點:

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);
    }
}

但是,我懷疑會有大量的極端情況。 請注意,上面使用\\p{Lu}而不是[AZ]來處理非ASCII大寫字母; 如果您只需要處理ASCII,則可能會發現AZ更簡單。 TrimStart()調用用於刪除否則將獲得的前導空間。

如果字符串中的每個單詞都以大寫字母開頭,則可以將以大寫字母開頭的每個部分轉換為以空格分隔的字符串。

您可以使用LINQ

string words = "WhoAmI";
string sentence = String.Concat(words.Select(letter => Char.IsUpper(letter) ? " " + letter 
                                    : letter.ToString()))
                                    .TrimStart();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM