環境
ソースコード
Google Guava
https://github.com/google/guava
<!-- https://mvnrepository.com/artifact/com.google.guava/guava --> <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>20.0</version> </dependency>
String snake = CaseFormat.UPPER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, "KagamiHoge"); System.out.println(snake);//kagami_hoge String camel = CaseFormat.LOWER_UNDERSCORE.to(CaseFormat.UPPER_CAMEL, "kagami_hoge"); System.out.println(camel);//KagamiHoge
Commons Lang
https://commons.apache.org/proper/commons-lang/
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 --> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.5</version> </dependency>
String snake = StringUtils.join(StringUtils.splitByCharacterTypeCamelCase("KagamiHoge"), "_").toLowerCase(); System.out.println(snake);//kagami_hoge String camel = StringUtils.remove(WordUtils.capitalizeFully("kagami_hoge", '_'), "_"); System.out.println(camel);//KagamiHoge
ModeShape
https://docs.jboss.org/author/display/MODE50/Home
<!-- https://mvnrepository.com/artifact/org.modeshape/modeshape-common --> <dependency> <groupId>org.modeshape</groupId> <artifactId>modeshape-common</artifactId> <version>5.2.0.Final</version> </dependency>
Inflector i = Inflector.getInstance(); String snake = i.underscore("KagamiHoge", '_'); System.out.println(snake);//kagami_hoge String camel = i.upperCamelCase("kagami_hoge"); System.out.println(camel);//KagamiHoge
感想とか
CamelCase と snake_case を相互変換する - Qiita にもあるようにGuavaが手軽。次点でCommons Langか。Commons Langは既にライブラリを入れてる場合も多いんでこれでも良いかな、と個人的には思う。最後に参考URLのstack overflowに乗ってたModeShapeも一応試したけど……あんま見たことないんで、導入済みであれば使ってもいいかな~という感じがする。