【问题标题】:Humanize uppercase name with hyphenated last name使用带连字符的姓氏人性化大写名称
【发布时间】:2015-12-27 12:05:26
【问题描述】:

这是使用 .NET Humanizer 库为大写名称命名的标准方法。

"FIRST M HYPHENATED-LAST".Transform(To.LowerCase, To.TitleCase);
// Result (v1.37.0): "First M Hyphenated-last"
// Desired Result: "First M Hyphenated-Last"

不幸的是,连字符后面的字符是小写的,而在我看来它应该是大写的。

任何人对使用 Humanizer 获得我正在寻找的结果有任何建议,或者从 v1.37.0 开始,Humanizer 就无法做到这一点?

【问题讨论】:

  • 我不知道 Humanizer,但是拆分-变换-加入会不会很麻烦?
  • @ArghyaC 没有太多的工作。我只是将人性化器用于很多事情,总的来说它工作得很好而且很方便。这是我遇到的第一个未达标的情况,我希望有一种我不知道的技术会产生预期的结果。如果没有,我会按照你的建议自己做,并且可能会考虑向项目发出拉取请求。
  • 我刚刚看了Humanizer,它看起来不错。但是如果没有Split()Replace(),就找不到可以解决像你这样的问题的东西。如果您拉出并添加几个接受一些允许的字符的方法,将对其他人有所帮助。类似Humanize(this string s, params char[] allowedChars)
  • +1 向我介绍了这个图书馆。看起来很有趣。 xxx.Humanize(LetterCasing.Title) 不行吗?
  • 我刚看到代码,我的建议不起作用。 :(

标签: c# humanizer


【解决方案1】:

试试这个:

var name = "FIRST M HYPHENATED-LAST";
CultureInfo cultureInfo = Thread.CurrentThread.CurrentCulture;
TextInfo textInfo = cultureInfo.TextInfo;
var result = textInfo.ToTitleCase(name.ToLower());
Console.WriteLine(result);

【讨论】:

    猜你喜欢
    • 2013-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-22
    • 2018-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多