com.google.common.base.CaseFormat是一種實用工具類,以提供不同的ASCII字符格式之間的轉換。
其對應的枚舉常量
從以上枚舉中可以看出,java程序員最常用的轉換類型為:UPPER_CAMEL,即我們常說的"駝峰式"編寫方式;其次,我們常用的是:UPPER_UNDERSCORE,即我們常用的常量命名法,不同單詞見使用下划線分割的書寫方式。
對應有的方法
CaseFormat 示例
public static void main(String args[]) { CaseFormatTest tester = new CaseFormatTest(); tester.testCaseFormat(); } private void testCaseFormat() { System.out.println(CaseFormat.LOWER_HYPHEN.to(CaseFormat.LOWER_CAMEL, "test-data")); System.out.println(CaseFormat.LOWER_UNDERSCORE.to(CaseFormat.LOWER_CAMEL, "test_data")); System.out.println(CaseFormat.UPPER_UNDERSCORE.to(CaseFormat.UPPER_CAMEL, "test_data")); System.out.println(CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, "testdata")); System.out.println(CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, "TestData")); System.out.println(CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_HYPHEN, "testData")); }
運行結果如下:
testData testData TestData
testdata
test_data
test-data
從以上結果我們可以分析,倒數第3個結果沒有轉換成功,將原字符串打印出來,推導出guava不可能做到那么智能,能夠自動識別一個單詞之后將兩個單詞用下划線分隔開(要想做也是可以的,需要將英文詞庫加載一遍,之后每次掃描給定的字符串進行單詞分割,這樣做就太復雜了),它只能通過給定字符串大小寫的方式或者上面3個實例有分隔符的方式才能拆分開,故倒數第二個就能正確識別出來。所以在使用guava轉換的時候一定要注意了。