【Java】文字列を1文字ずつ取り出す
ざっと思いつくのは2パターン。
1.Stringクラスのsplit()メソッド
2.StringクラスのcharAt()メソッド
どちらが良いのでしょうか。
まずは1番目のsplit()メソッドを使ってみます。
ソース
String str = "abcde"; String[] strArray = str.split(""); for(String s : strArray) { System.out.println(s); }
実行結果
a b c d e
簡単に出来ました。
ですが調べてみると、どうやら1つ問題というか注意があるようです。
Java7までの環境では、配列の0番目に空文字が入ってしまうようです。
Java8だと上記の実行結果の通り問題なく動作しています。
次に2番目のcharAt()メソッドで同じように実装してみます。
ソース
String str = "abcde"; for(int i = 0; i < str.length(); i++) { System.out.println(str.charAt(i)); }
実行結果
a b c d e
インデックスを必要とするため拡張for文は使っていません。
あっさりと言えばあっさりですが、何となく素人感は否めない感じがあります。
と言いつつも、私は真っ先にこれが思い浮かぶと思いますが。
とくに問題がなければ、split()メソッドの方が良いのでしょうか。
文字数が増えた時には、おそらく実行速度に差が出てくると思います。
そうなった場合は速い方を選択して使いたいですね。
今回は以上になります。