2009年6月16日火曜日

カンマ区切りの文字列を扱う

カンマ区切りの文字列で
2つ目に区切られた語を取り出したい場合、
下記の2つでどの方法が早いか実験。
public static void main(String[] args) {
     long start, goal;
     String str = "漢字,ひらがな,カタカナ,ローマ字";
     start = System.currentTimeMillis();
     for (int i=0; i < 100000; i++){ func1(str);}
     goal = System.currentTimeMillis();
     System.out.println("func1: " + (goal - start));

     start = System.currentTimeMillis();
     for (int i=0; i < 100000; i++){ func2(str);}
     goal = System.currentTimeMillis();
     System.out.println("func1: " + (goal - start));

     }
     static String func1(String str) {
         int index = str.indexOf(",") + 1;
         return str.substring(index, str.indexOf(",", index));
     }
     static String func2(String str) {
         return str.split(",")[1];
     }
結果は
func1: 16
func1: 438

1行で書けても遅い。ケースバイケースで使い分け。

0 件のコメント:

コメントを投稿