概要 String#split() に空文字列 "" を渡して、文字列を 1 文字毎ごとの部分文字列に分解、みたいな手抜き実装をよくやるのですが、Java 7 (以前?) と Java 8 でこの挙動が異なるみたいです。 Java 7 では、以下のサンプルにあるとおり、戻り値の配列の一番最初の要素が空文字列になるのですが、Java 8 ではこの空文字列がなくなるようです。 デモコード import java.util.Arrays; import java.util.regex.Pattern; public class StringSplit { public static void main(String[] args) { String str = "ABC"; // String#split() を試してみる String[] elems = str.split(""); Syst
![Java 8 で String#split() に空文字列を渡したときの挙動が変わったようです - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/d600962d9fdbc02f4ce112b33e1c58d4bd578c61/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9SmF2YSUyMDglMjAlRTMlODElQTclMjBTdHJpbmclMjNzcGxpdCUyOCUyOSUyMCVFMyU4MSVBQiVFNyVBOSVCQSVFNiU5NiU4NyVFNSVBRCU5NyVFNSU4OCU5NyVFMyU4MiU5MiVFNiVCOCVBMSVFMyU4MSU5NyVFMyU4MSU5RiVFMyU4MSVBOCVFMyU4MSU4RCVFMyU4MSVBRSVFNiU4QyU5OSVFNSU4QiU5NSVFMyU4MSU4QyVFNSVBNCU4OSVFMyU4MiU4RiVFMyU4MSVBMyVFMyU4MSU5RiVFMyU4MiU4OCVFMyU4MSU4NiVFMyU4MSVBNyVFMyU4MSU5OSZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU2JnR4dC1jbGlwPWVsbGlwc2lzJnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9MDBlZGEzYTA5ZGIxZjEzMjc3ZjgwYWE5YWMwNTRlYzM%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwa29taXlhX2F0c3VzaGkmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zNiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPTIxMzdhNGJiNDhjNDE1ZGFmZjJlNmM3MzcyNWZmMjFi%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3Dd54b3d13f20a1f61c70d38db1e628e22)