2013-06-25 212 views
2

我很難搞清楚如何在Groovy中將字符串轉換爲駱駝大小寫。假設我從一個看起來像「1-800 FOO.BAR」的字符串開始。最終,我想把它變成「1800FooDotBar」。我已經能夠做得到1800FOODotBar如下:首字母大寫的字符串首字母大寫

String str = "1-800 FOO.BAR" 
String tempStr = str.replaceAll(/(?i)\.com/, "DotCom") 
String newStr = tempStr.replaceAll(/\\W/, "") 

我只是不知道如何擺脫在中間的大寫字母。我遇到了一些關於應該能夠提供幫助的大寫()方法的信息,但我對Groovy不太瞭解如何使用它。我想我需要將字符串拆分爲每個單詞的單個字符串,然後將每個字符串的首字母大寫,但是如何構建最終結果?我知道類似的問題已經被問到,但我只是沒有看到如何獲取這些信息,並從中製作完整的Groovy代碼。提前致謝!

+0

請問你的字符串*總是*是平凡的,splitable? –

+0

我相信如此。他們來自名單列表,所以我認爲我應該始終能夠在空白區域或標點符號上進行分割。另一個例子是「FOO,BAR」。這應該變成「FooBar」。 – Jess

回答

11

大致來說:

String str = "1-800 FOO.BAR" 
println str.replaceAll(/\./, " Dot ").split(/[^\w]/).collect { it.toLowerCase().capitalize() }.join("") 
=> 1800FooDotBar 
+0

爲什麼只有「粗略」?看起來像他要求的那樣 –

+0

@Don幾乎沒有經過測試,而且可能會減少一些冗長:) –