Java Print数组与分隔符在同一行

时间:2018-02-03 19:12:08

标签: java arrays csv line separator

我有一个类正在从文件中读取特定列并将其插入到数组中。我想用逗号分隔符在同一行上打印该数组。

以下是我的代码:

public static void getArray(int Column, File path, String Splitter) throws IOException
{
    List<String> lines = Files.readAllLines(path.toPath(), StandardCharsets.US_ASCII); 

    for (String line : lines) 
    { 
        String[] array = line.split(Splitter); 

         //Will return all elemetns on the same line but without any separation, i need some kind of separation 
         // if i use System.out.print(array[Column]+" ,");
         // i will always get a , at the end of the line
        System.out.print(array[Column]);

    }
}


getArray(3, file, "|");

当前输出为:

  

ABCDEFG

所需的输出是:

  

A,B,C,d,E,G

2 个答案:

答案 0 :(得分:3)

您可以使用joining收藏家。

使用分隔符,连接数组的元素。

String result = Arrays.stream(array)
                      .collect(Collectors.joining(","));

使用分隔符,连接数组中给定元素的字符。

String result = Arrays.stream(array[Column].split(""))
                      .collect(Collectors.joining(","));

使用分隔符,连接数组中给定元素的字符的另一种变体:

String result = array[Column].chars()
                             .mapToObj( i -> String.valueOf((char)i))
                             .collect(Collectors.joining(","));

答案 1 :(得分:2)

你可以不使用流(在Java 8+中,df3[is.na(df3)] <- 0 df3 <- as.matrix(df3) 1 2 1 0 0 2 0 0 3 0 0 4 1 0 5 1 0 6 1 0 7 0 0 8 0 1 9 0 1 ):

String.join

但你也可以用一个普通的循环来做到这一点:

String.join(",", array)