是否可以将这些组合词分成两部分? 例如:“名字”来 “第一” “名称”
我有一堆属性,例如FirstName,LastName等,我需要在我的页面上显示这个。这就是为什么我需要将此属性名称分隔为更合适的方式。
答案 0 :(得分:1)
编辑: OP指定他需要拆分属性名称
如果您遵循属性的CamelCase命名约定(即“FirstName”而不是“Firstname”),则可以非常容易地按大写字符拆分单词。
string[] SplitByCaps(string input)
{
StringBuilder output = new StringBuilder();
for (int i = 0; i < input.Length; i++)
{
char c = input[i];
if (i > 0 && Char.IsUpper(c))
output.Append(' ');
output.Append(c);
}
return output.ToString().Split(' ');
}
Orinal回答:
我想说,对于实用目的,任何字符串都不可能这样做。
当然可以编写一个程序来执行此操作,但无论您的实际需求是什么,该程序都会过度。可能还有已经执行此操作的库,但它们会非常繁重,您不希望依赖它们。
任何可以实现这一目标的程序都必须知道英语中的所有单词(我们甚至不考虑多语言解决方案)。您还需要一个智能的词法解析器,因为对于任何单词,可能有多种可能的方法来拆分它。
我建议您研究一些其他方法来解决您的特定问题。
答案 1 :(得分:1)
你的目标很模糊
如果属性总是有大写字母,你可以在单词中找到所有大写字母的位置,并将其分配给那些位置。
如果无法保证大写字母,最好的方法是创建转换表。该表将定义初始属性名称和结果文本对。通过这种方式,您将拥有简单的转化地图
答案 2 :(得分:0)
除非你有一个所有'单个'单词的字典,否则我能想到的唯一解决方案是拆分大写字母:
FirstName - &gt;名字
UIFilter仍然存在问题 - &gt; UI过滤器。
答案 3 :(得分:0)