疲れたらやすむ

Javaを学ぶ上でハマったところを書いていきます。iPhoneアプリ開発や日常ネタもあるかも。

【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()メソッドの方が良いのでしょうか。
文字数が増えた時には、おそらく実行速度に差が出てくると思います。
そうなった場合は速い方を選択して使いたいですね。

今回は以上になります。