Apache Commonsには、便利なユーティリティーがいっぱい。
まずは、文字列操作のユーティリティーから。
Apache Commonsの入手
mavenを使って入手
pom.xmlは、こんな感じ。
Apache Commonsはいろいろあるけど、今回は文字列操作なので「Apache Commons Lang」が対象。
1 2 3 4 5 6 | <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 --> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.12.0</version> </dependency> |
手動で入手
手動で入手するのであれば、以下のjarを入手することになります。
「Apache Commons Lang」は依存関係がないので、手動でも簡単に手に入れられますね。
https://mvnrepository.com/repos/central
- commons-lang3-3.12.0.jar
※2023年6月現在です。
ちなみに、Apache License 2.0で提供されています。
Apache CommonsのStringUtilsを使うサンプル
文字列をトリム、スペース削除など5種類の方法で操作。結果を出力します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | import org.apache.commons.lang3.StringUtils; public class StringTest { public static void main(String[] args) { //最初と最後は半角スペース、他のスペースは全角スペースの文字列 String str = " こ ん に ち は !! "; //前後のトリム System.out.println("トリム:" + StringUtils.trim(str)); System.out.println("トリム(null):" + StringUtils.trim(null)); //スペース削除 System.out.println("スペース削除:" + StringUtils.deleteWhitespace(str)); System.out.println("スペース削除(null):" + StringUtils.deleteWhitespace(null)); //置換 System.out.println("置換:" + StringUtils.replace(str, "!!", "!!")); System.out.println("置換(null):" + StringUtils.replace(null, "!!", "!!")); //...を足した(+3)文字数で以下を省略 System.out.println("省略:" + StringUtils.abbreviate(str, 8)); System.out.println("省略(null):" + StringUtils.abbreviate(null, 8)); //空文字判定 System.out.println("空文字判定(12345):" + StringUtils.isEmpty("12345")); System.out.println("空文字判定(null):" + StringUtils.isEmpty(null)); System.out.println("空文字判定(空文字):" + StringUtils.isEmpty("")); //数字判定 System.out.println("数字判定(12345):" + StringUtils.isNumeric("12345")); System.out.println("数字判定(12345a):" + StringUtils.isNumeric("12345a")); System.out.println("数字判定(12345):" + StringUtils.isNumeric("12345")); System.out.println("数字判定(null):" + StringUtils.isNumeric(null)); //アルファベット判定 System.out.println("アルファベット判定(abcde):" + StringUtils.isAlpha("abcde")); System.out.println("アルファベット判定(abcde1):" + StringUtils.isAlpha("abcde1")); System.out.println("アルファベット判定(abc):" + StringUtils.isAlpha("abc")); System.out.println("アルファベット判定(null):" + StringUtils.isAlpha(null)); } } |
実行結果
文字列をトリム、スペース削除・・の結果が出力されます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | トリム: こ ん に ち は !! トリム(null):null スペース削除:こんにちは!! スペース削除(null):null 置換: こ ん に ち は !! 置換(null):null 省略: こ ん... 省略(null):null 空文字判定(12345):false 空文字判定(null):true 空文字判定(空文字):true 数字判定(12345):true 数字判定(12345a):false 数字判定(12345):true 数字判定(null):false アルファベット判定(abcde):true アルファベット判定(abcde1):false アルファベット判定(abc):true アルファベット判定(null):false |
サンプルの解説
メソッド的には、他にもいろいろありますが、なんとなく代表っぽい?ものを挙げてみました。
メソッドはすべてクラスメソッド(static)で提供されています。
trim、replace、isEmptyのようなものは、標準のStringでも提供されているわけですが、標準だとnullの場合は当然コケますw
対して、StringUtils(Apache Commons)は、外部から文字列を操作、チェックしてくれるので、安心して使えますね。
また、標準には無い便利なメソッドもあります。
この例では、スペース削除、省略、半角数字判定、半角アルファベット判定です。
気が利いてて、良いですね。