如何转换此数组,以便下面的代码输出如下。
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]
答案 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