13

int、float、stringなどの配列があるとします。コンマ区切りの文字列を提供するユーティリティAPI(Commons、Guavaなど)はありますか?

そのようです、

int[] a = {1,2,3,4,5}. 
String s = magicAPI.getCSV(a); // s == "1,2,3,4,5";
4

6 に答える 6

32

この単純なユースケースでは、文字列をコンマで結合するだけです。Java 8を使用する場合:

String csv = String.join(",", yourArray);

それ以外の場合、 commons-langには次のjoin()メソッドがあります。

String csv = org.apache.commons.lang3.StringUtils.join(yourArray, ",");
于 2012-07-18T16:29:02.350 に答える
6

あなたはこれのためのユーティリティを持っているグーグルグアバに言及します:Joiner

String s = Joiner.on(",").join(a);
于 2012-07-18T16:32:58.743 に答える
4

私は過去に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);

ただし、このような些細な例では、aStringBuilderforループを使用することをお勧めします。

于 2012-07-18T16:29:00.540 に答える
3

さらに掘り下げた後、Springでそれを実行できるhttp://static.springsource.org/spring/docs/1.1.5/api/org/springframework/util/StringUtils.htmlStringUtilsAPIを見つけました。すでにSpringを使っているので、これからも頑張っていきたいと思います。

于 2012-07-18T16:34:36.277 に答える
1

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("#");
于 2012-07-18T16:27:45.403 に答える
0

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
于 2016-07-11T00:58:56.537 に答える