Java 7 になって String#split() の実装が変更されたことに今更ながら気付いたので、Pattern#split() や Java 6 との性能の比較をしてみたメモです。 Java 6 以前の文字列分割処理 古くから Java を触っているエンジニアであればみな当然知っていることだと思いますが、 TSV ファイルを Java のプログラムで読み込んで処理をするときなど、特定のデリミタで区切られた文字列を個々の要素に分割するときは String#split() を利用せず、事前にデリミタに対する java.util.regex.Pattern オブジェクトを生成しておき、そのオブジェクトを使い回す形で Pattern#split() を利用した方が処理効率 (処理時間) がよくなります。 これは、 String#split() の実装が実質的に Pattern.compile
![Java 7 時代の String#split() 事情](https://cdn-ak-scissors.b.st-hatena.com/image/square/c62108ddefc9e9aab2082459b43c2c20827c8e1d/height=288;version=1;width=512/https%3A%2F%2Fblogger.googleusercontent.com%2Fimg%2Fb%2FR29vZ2xl%2FAVvXsEgRSysAgTtLx37_0j1aluXey1L9enSh5oPr6zIrA1qzdRRl1EpGo_vO0CSDFUMuJcXMpkGWjxgbi4sAiQ0wisL-U6DFx_0a16OuTsgO83Bgd48HM5TkFupTCnSNtSBwhND_sYN2ztacuhrw%2Fw1200-h630-p-k-no-nu%2FJavaSplit.png)