我使用來自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