Из внешнего API, который я являюсь потребителем, получает категорию строкового типа.
Из полученных нами значений они имеют общий формат, например
- NewWest (Слово, начинающееся с заглавной буквы, и везде, где слово должно разрываться, оно будет продолжено заглавной буквой).
- AB C (Слово будет полностью заглавным)
То, что мы делаем до сих пор, это берем эту категорию в качестве входных и разбиваем их на несколько слов с пробелом, используя этот метод
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;
}
Текущий метод вернет это значение для следующего входа
- AB C (ввод)> AB C (вывод)
- NewWest (ввод)> New West (вывод)
- NewBellCan (ввод)> New Bell Can
Был замечен третий формат
ABCXyxxx
XCVbbbb
RRDddddddvvvv
Требуемые выходные данные:
ABCXyxxx (вход)> AB C Xyxxx (Так как после заглавной буквы X все буквы маленькие, значит слово сломано)
XCVbbbb (ввод)> X C Vbbb (Так как после заглавной буквы V все буквы маленький означает, что слово сломано)
RRDddddddvvvv (ввод)> RR Dddddddvvvv (Поскольку после заглавной буквы D все буквы маленькие, это означает, что слово сломано)
Как мне реализовать это в существующем методе, чтобы все три формата работали правильно.