包含首字母缩略词的字符串/段落/句子可以转换为人类可读的句子/字符串。我只是在尝试格式化 Pascal Cased 字符串,我进行了更多调查,甚至尝试将 Acronyms 转换为可理解的格式。
测试数据:
输入: “QWERTYSomeThing OmitTRYSomeThing MayBeWorkingFYI”
输出: “QWERTY Some Thing Omit TRY Some Thing may be working for FYI”
代码:
将输入字符串传递给下面给出的方法。
private static string FormatPascalAndAcronym(string input)
{
var builder = new StringBuilder(input[0].ToString());
if (builder.Length > 0)
{
for (var index = 1; index < input.Length; index++)
{
char prevChar = input[index - 1];
char nextChar = index + 1 < input.Length ? input[index + 1] : '\0';
bool isNextLower = Char.IsLower(nextChar);
bool isNextUpper = Char.IsUpper(nextChar);
bool isPresentUpper = Char.IsUpper(input[index]);
bool isPrevLower = Char.IsLower(prevChar);
bool isPrevUpper = Char.IsUpper(prevChar);
if(!string.IsNullOrWhiteSpace(prevChar.ToString()) &&
((isPrevUpper&& isPresentUpper && isNextLower) ||
(isPrevLower&&isPresentUpper&&isNextLower)||
(isPrevLower&&isPresentUpper&&isNextUpper)))
{
builder.Append(' ');
builder.Append(input[index]);
}
else{
builder.Append(input[index]);
}
}
}
return builder.ToString();
}