我使用来自apache commons的WordUtils
来正确标准化人名。例如,使用连字符名称大写
AnGEl lEe -> Angel Lee
它很好用。现在我想到的其中一个测试用例是连字符名称。通常情况下,连字符(或多个)的每个部分都有首字母大写,所以我希望
AnGeL lEe-YaNG --> Angel Lee-Yang
然而,使用我现有的方法,简单地调用capitalizeFully
结果
Angel Lee-yang
如何才能做到这一点?
我使用来自apache commons的WordUtils
来正确标准化人名。例如,使用连字符名称大写
AnGEl lEe -> Angel Lee
它很好用。现在我想到的其中一个测试用例是连字符名称。通常情况下,连字符(或多个)的每个部分都有首字母大写,所以我希望
AnGeL lEe-YaNG --> Angel Lee-Yang
然而,使用我现有的方法,简单地调用capitalizeFully
结果
Angel Lee-yang
如何才能做到这一点?
您可以通过多个分隔符重载WordUtils.capitalizeFully(String, char...)
方法:
WordUtils.capitalizeFully("AnGeL lEe-YaNG", ' ', '-')
哦,我想知道intellisense是否只是在签名中显示'...',因为它很长或什么。我正在打电话,但没有想到只是通过我的所有分隔符! – MxyL
@MxyL这就是所谓的'vararg'。 –
综观API
有capitalizeFully(字符串str的char []分隔符),它可以解决您的问题。你可以使用这种方法,或者你没有访问调用capitalizeFully的代码吗?
是的,该方法有效。 – MxyL
使用capitalizeFully的,将一组分隔符的过载,并传递“ - ”作为其中之一:
WordUtils.capitalizeFully("i aM.fine", {'.'}) = "I am.Fine"
所以这似乎实际上是Apache的一个已知的问题WordUtils
方法WordUtils.capitalizeFully
之前WordUtils
版本2.1。
如果你仍然有兴趣使用WordUtils
使用以下命令:
`WordUtils.capitalizeFully("JEfF SamPsOn-bROWN", new char[]{' ', '-'});
这将完成的是字符数组中delimters后,将利用一切。这基本上将利用只有歼,S和B
欲了解更多信息,你可以看看: Word Utils Documentation
使用不同的效用函数和/或写自己的?或许可以识别包含连字符的字符串并分解它们,分别使用连字符后的大写字母? – keshlam