Stringクラスのsplit()メソッドを利用したときに引っかかったこと
前回このメソッドを用いた時にも引っかかったことなのだが、使うたびに引っかかるので備忘録と戒めの意味を含めて書くことにしました。ちなみにちゃんとオンラインマニュアルには書かれています。
で、よく間違えるのは以下のような場合だ。
String str = new String("a"+" "+" "+b"); String[] arr = str.split(" "); for(String temp : arr){ System.out.println(temp); }
こう書いたときに、僕が期待しているのは
a b
と言う表示なのですが、適当なクラスを用意して実行してみるとわかるけど、何故か下のように表示される。
a b
どうやらarrの中身は "a" "" "b"になっているみたいというのがわかった。理由は単純で" "で分けた時に" "と" "の間に何もないものが挟まっていると判定されるみたいだ。よって僕が求めるような出力を出したければ、以下のように""を排除するべきである。
String str = new String("a b"); String[] arr = str.split(" "); for(String temp : arr){ if(!temp.equals("")) System.out.println(temp); }