我正在努力格式化字符串。当我的值是:OrderLineId
并将其格式化为:order_line_id
时。除第一个字符外,所有小写字符和每个大写字符都应附加一个_
。
我确实看到了TextInfo
中using System.Globalization;
的一些用法,但是我无法解决这个问题。
我尝试仅使用C#代码而不是正则表达式来解决此问题。...对不起
谢谢。
答案 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();
}