Fight the Future

Java言語とJVM、そしてJavaエコシステム全般にまつわること

プレゼン、ボランティアコーチします!

勉強会でスピーカーをやりたいけど、プレゼンが初めて、苦手という方に無償でコーチします!資料レビューや録画リハへアドバイスします。Twitter@jyukutyoまでメンションでもDMでも。

私はデブサミやJJUG CCCなど200人規模で登壇経験ありです。海外での登壇も短いながらあり。デブサミ2017では公募スピーカー1位でした!

Pattern#split()をちゃんと理解した

"boo:and:foo"

o 	5 	{ "b", "", ":and:f", "", "" }
o 	-2 	{ "b", "", ":and:f", "", "" }
o 	0 	{ "b", "", ":and:f" }

ゼロの場合、このパターンの適用回数と配列の長さは制限されませんが、後続の空の文字列は破棄されます。

Pattern#split()で第2引数であるlimitを渡さなければ、オーバーロードされたメソッドが呼び出されて、limitは0として扱われる。
そのとき末尾のマッチングがポイントで、limitが0だと末尾がマッチングしても破棄される。
破棄せずに空文字で結果がほしい場合は、limitを-1にしておく。