从我是消费者的外部API接收字符串类型的类别。
从值中我们得到它们具有通用的格式,如
到目前为止,我们正在将这一类别作为输入,并将它们分成多个空格使用此方法
public static string BreakCategoryIntoMultipleWords(string category) { StringBuilder builder = new StringBuilder(); string formatedWord = string.Empty; if (category.All(c => char.IsUpper(c))) { formatedWord = category; } else { foreach (char c in category) { if (Char.IsUpper(c) && builder.Length > 0) builder.Append(' '); builder.Append(c); } formatedWord = builder.ToString(); } return formatedWord; }
当前方法将为以下输入返回此值
已经注意到第三种格式
RRDddddddvvvvv
所需的输出是:
ABCXyxxx(输入)> ABC Xyxxx(由于大写字母X后所有字母都是小字母,表示单词已损坏)]]
我应该如何在现有方法中实现这一点,以便所有三种格式都能正常工作。
从我是消费者的外部API接收字符串类型的类别。从这些值中我们可以得到它们的通用格式,例如NewWest(以大写字母开头的单词...
RegEx方法:https://dotnetfiddle.net/42gyod
string result = new Regex("(?=[A-Z][a-z])").Replace(input, " ").TrimStart();
添加到@fubo答案中,您也可以使用Split
并避免使用TrimStart
: