Я занимаюсь разработкой Xamarin.Forms
приложения на UWP
Есть ли простой способ применить грамматический корпус к строке?
У меня есть Editor
контроль - в основном многострочный TextBox
Я пытаюсь применить некоторые простые грамматические оболочки к строке в основном следующие:
- Заглавие слова "I"
- Прочитать первые слова
- Capitali se Первое слово после полной остановки.
Мне удалось сделать первые два, и я немного застрял на третьем, и мне было интересно, есть ли более простой способ или можно ли адаптировать мой алгоритм.
То, что я до сих пор:
public static string ToGramaticalCase(this string s)
{
var thingsToCapitalise = new String[] {"i"};
string newString = string.Empty;
if (!string.IsNullOrEmpty(s))
{
var wordSplit = s.Split(' ');
if (wordSplit.Count() > 1)
{
var wordToCapitalise = wordSplit.First();
wordToCapitalise = wordToCapitalise.Substring(0, 1).ToUpper() + wordToCapitalise.Substring(1);
var value = wordToCapitalise + s.Substring(wordToCapitalise.Length);
foreach (var item in thingsToCapitalise)
{
value = value.Replace(string.Format(" {0} ", item), string.Format(" {0} ", item.ToUpper()));
}
newString = value;
}
}
return newString;
}
Не уверен, что если он делает все, что вы хотите, но вы посмотрите на [Humanizer] (https://github.com/Humanizr/Humanizer) –