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

您提到了Google Guava,它具有以下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);

但是,对于这样一个简单的示例,您可能只想使用 aStringBuilder和 afor循环

于 2012-07-18T16:29:00.540 回答
3

在挖掘了更多之后,我发现http://static.springsource.org/spring/docs/1.1.5/api/org/springframework/util/StringUtils.html StringUtils API in Spring 可以做到。因为,我已经在使用 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 回答