int、float、stringなどの配列があるとします。コンマ区切りの文字列を提供するユーティリティAPI(Commons、Guavaなど)はありますか?
そのようです、
int[] a = {1,2,3,4,5}.
String s = magicAPI.getCSV(a); // s == "1,2,3,4,5";
この単純なユースケースでは、文字列をコンマで結合するだけです。Java 8を使用する場合:
String csv = String.join(",", yourArray);
それ以外の場合、 commons-langには次のjoin()
メソッドがあります。
String csv = org.apache.commons.lang3.StringUtils.join(yourArray, ",");
私は過去にOpenCSVを使用しました。
StringWriter stringWriter = new StringWriter();
int[] a = {1,2,3,4,5};
String[] b = new String[a.length];
for ( int i = 0; i < a.length; i++) {
b[i] = a[i];
}
CSVWriter csvWriter = new CSVWriter(stringWriter, ",");
csvWriter.writeNext(b);
ただし、このような些細な例では、aStringBuilder
とfor
ループを使用することをお勧めします。
さらに掘り下げた後、Springでそれを実行できるhttp://static.springsource.org/spring/docs/1.1.5/api/org/springframework/util/StringUtils.htmlStringUtilsAPIを見つけました。すでにSpringを使っているので、これからも頑張っていきたいと思います。
Commons Apache CSVは、他の3つのCSVライブラリを統合しているように見えますが、2007年以降のリリースは見つかりません。
簡単に見てみると、 OpenCSVはを介してあなたが望むことをするでしょうCSVWriter
。
CSVWriter writer = new CSVWriter(new FileWriter("yourfile.csv"), '\t');
// feed in your array (or convert your data to an array)
String[] entries = "first#second#third".split("#");
openCSVを使用する代わりに、これを行うための新しいメソッドを作成しました
public String convertArrayToCsv(String[] IncomingArray)
{
StringBuilder sb=new StringBuilder();
for (int i=0;i<IncomingArray.length;i++)
{
sb=sb.append(IncomingArray[i]);
if(i != IncomingArray.length-1)
{
sb.append(",");
}
}
return sb.toString();
}//end of convertArrayToCsv method