【发布时间】:2017-02-15 14:35:44
【问题描述】:
我正在UWP 上开发一个Xamarin.Forms 应用程序
我有一个 Editor 控件 - 基本上是一个多行 TextBox
我正在尝试对字符串应用一些简单的语法大小写,基本上如下:
- 将“I”一词大写
- 第一个单词大写
- 句号后的第一个单词大写。
我已经完成了前两个,但在第三个上有点卡住,想知道是否有更简单的方法或者我的算法是否可以调整。
到目前为止我所拥有的是:
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吗?
标签: c# xamarin uwp xamarin.forms