选择分隔符将二维数组转换为字符串

时间:2019-04-18 08:27:20

标签: java arrays tostring

如何转换此数组,以便下面的代码输出如下。

String[][] array = { { "a", "b" }, { "c" } };

String lineSeparator = System.lineSeparator();
StringBuilder sb = new StringBuilder();

for (String[] row : array) {
    sb.append(Arrays.toString(row))
      .append(lineSeparator);
}

String result = sb.toString();

我需要输出看起来像这样

a,b,c 

我现在正在得到这个

[a, b]
[c]

3 个答案:

答案 0 :(得分:1)

System.out.println(Arrays.stream(array).flatMap(ar -> Arrays.stream(ar)).collect(Collectors.joining(",")));

这是使用Java 8流完成的,我不建议像我一样在一行中执行此操作,最好总是将其保存到变量中然后再打印:)

答案 1 :(得分:0)

改为使用StringJoiner。 IdeoneLink:https://ideone.com/EfodvF

/* package whatever; // don't place package name! */

import java.util.*;
import java.lang.*;
import java.io.*;

/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
    public static void main (String[] args) throws java.lang.Exception
    {
        String[][] array = { { "a", "b" }, { "c" } };
        StringJoiner sj = new StringJoiner(", ");

        for (String[] row : array) {
            for(String str: row){
                sj.add(str);
            }
        }


        String result = sj.toString();
        System.out.println(result);
    }
}

答案 2 :(得分:0)

您可以这样做:

String[][] array = {{"a", "b"}, {"c"}};

String s = "";
for (String[] ar : array) {
    for (String c : ar) {
        s += c + ",";
    }
}
if (s.length() > 1)
    s = s.substring(0, s.length() - 1);

System.out.println(s);

我相信您是一个初学者。也许在发表问题之前先做一些研究。

  

https://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html