javaのsplitで1文字ずつの配列にする。(空文字・空白)





だからjava8使えとあれほど(ry

職場でsplitで文字列を1文字ずつの配列にしようとしてハマりました。
とりあえず文字列を1文字ずつ配列にいれたかったので

String[] strAry = "abc".split("");

っとかやってみたのです。

しかし結果は
strAry : [“”,”a”,”b”,”c”]
となっており、頭を抱えました。検索したら上記の構文で普通に上手くいってる記事まで出てきてあばばば。

どうやらjavaのバージョンの問題だったようで、java8なら前述のやり方で普通に出来るみたいなんですね。
まぁ確かにその時の環境はjava6だったんですよね。(マジ勘弁…)
最終的には↓のプログラムで上手くいきました。

String[] strAry = "abc".split("(?!^)");

まぁ通常だと開始部分が含まれてしまうので、それを抜いてやるわけですね。
特に誰も得しない仕様だったため「開始文字が引っかかっても無視する」仕様に変わったようです。
・Stackoverflowの記事






You may also like...