格式化C#字符串以匹配特定结果

时间:2018-08-12 09:36:08

标签: c#

我正在努力格式化字符串。当我的值是:OrderLineId并将其格式化为:order_line_id时。除第一个字符外,所有小写字符和每个大写字符都应附加一个_

我确实看到了TextInfousing System.Globalization;的一些用法,但是我无法解决这个问题。

我尝试仅使用C#代码而不是正则表达式来解决此问题。...对不起

谢谢。

1 个答案:

答案 0 :(得分:1)

基于以下问题:

Add spaces before Capital Letters

我已针对您的目的调整了答案。

string AddUnderScoresToSentence(string text)
    {
        if (string.IsNullOrWhiteSpace(text))
            return "";
        StringBuilder newText = new StringBuilder(text.Length * 2);
        newText.Append(text[0]);
        for (int i = 1; i < text.Length; i++)
        {
            if (char.IsUpper(text[i]) && text[i - 1] != '_')
                newText.Append('_');
            newText.Append(text[i]);
        }
        string result = newText.ToString();
        return result.ToLower();
    }