カンマで区切られた文字列とListを相互に変換する方法(Javaプログラマー日記2015/03/06)

2177 ワード

プログラマーが何らかの機能を実現したい場合は、2つの道があります.一つは自分で実現することであり、一つは他人の実現を呼び出すことであり、他人の実現はいわゆるAPIである.そして多くの場合、多くの「他人」がこの機能を実現しています.プログラマーはこの中で選択しなければなりません.ほとんどの場合、プログラマーはどれを使うかを知っていて、まずどれを使うかを見ます.最後に、実際のプロジェクトでは、同じ機能で様々なAPIが呼び出されます.私は会社のプロジェクトでこのような状況を見た.実は、厚かましくないです.多くのプロジェクトがこのようにしていると信じています.プログラマーに同じ方法を要求することはできません.プログラマーには異なる好悪があるかもしれません.プログラマーが楽しく自由にプログラミングできるように、彼に任せましょう.プログラマーが自由を感じているとき、楽しいとき、彼らの生産力が一番高いときだからです.
いい加減にしろ.本題に戻ると、いったいこれらの異なる実現方法やAPIには本当に高低貴賤の区別がないのだろうか.私がこのカンマ区切り文字列に遭遇したリストを例に、検討します.
注意:次のコードは実行を保証するものではありません.少し修正する必要がある場合があります.
カンマ区切り文字列をListに変換
方法1:JDKを利用したArraysクラス
String str = "a,b,c";
List result = Arrays.asList(str.split(","));

方法2:GuavaのSplitterを利用する
String str = "a, b, c";
List result = Splitter.on(",").trimResults().splitToList(str);

方法3:Apache CommonsのStringUtilsを利用(splitのみ)
String str = "a,b,c";
List result = Arrays.asList(StringUtils.split(str,","));

方法4:Spring Frameworkを利用したStringUtils
String str = "a,b,c";
List str = Arrays.asList(StringUtils.commaDelimitedListToStringArray(str));

Listをカンマ区切りに変換
方法1:JDKを利用する(あまり良い方法がないようで、一歩一歩実現する必要がある)
NA
方法2:Guavaを利用したJoiner
List list = new ArrayList();
list.add("a");
list.add("b");
list.add("c");
String str = Joiner.on(",").join(list);

方法3:Apache Commonsを利用したStringUtils
List list = new ArrayList();
list.add("a");
list.add("b");
list.add("c");
String str = StringUtils.join(list.toArray(), ",");

方法4:Spring Frameworkを利用したStringUtils
List list = new ArrayList();
list.add("a");
list.add("b");
list.add("c");
String str = StringUtils.collectionToDelimitedString(list, ",");

比較すると、私の観点はGuavaライブラリがより柔軟で、適用範囲が広いということです.プロジェクトにGuavaが導入されていなければ、それを加えます.