Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中用逗号将两个列表连接在一起_Java - Fatal编程技术网

在Java中用逗号将两个列表连接在一起

在Java中用逗号将两个列表连接在一起,java,Java,我有两个字符串列表(a和b),我想在每个元素后面加一个逗号。我希望列表a的元素排在第一位。我也被困在Java7上 我尝试了以下方法,但无效: StringUtils.join(a, ", ").join(b, ", "); 这项工作: ArrayList<String> aAndB = new ArrayList<>(); aAndB.addAll(a); aAndB.addAll(b); StringUtils.join(aAndB, ", "); ArrayLis

我有两个字符串列表(a和b),我想在每个元素后面加一个逗号。我希望列表a的元素排在第一位。我也被困在Java7上

我尝试了以下方法,但无效:

StringUtils.join(a, ", ").join(b, ", ");
这项工作:

ArrayList<String> aAndB = new ArrayList<>();
aAndB.addAll(a);
aAndB.addAll(b);
StringUtils.join(aAndB, ", ");
ArrayList aAndB=new ArrayList();
a和b.addAll(a);
a和b.addAll(b);
StringUtils.join(aAndB,“,”);

有没有较短的方法可以做到这一点?

您可以像这样使用番石榴库:

String[]a={“a”、“b”、“c”};
字符串[]b={“d”,“e”};
//使用番石榴库
String[]joined=ObjectArrays.concat(a、b、String.class);
System.out.println(“联合数组:“+Arrays.toString(联合));
//输出:“联合数组:[a、b、c、d、e]”

您可以像这样使用番石榴库:

String[]a={“a”、“b”、“c”};
字符串[]b={“d”,“e”};
//使用番石榴库
String[]joined=ObjectArrays.concat(a、b、String.class);
System.out.println(“联合数组:“+Arrays.toString(联合));
//输出:“联合数组:[a、b、c、d、e]”

默认情况下,您不需要
StringUtils
列表
toString()
以逗号分隔的格式显示元素

System.out.println (new StringBuilder (aAndB.toString())
                                 .deleteCharAt (aAndB.toString().length ()-1)
                                 .deleteCharAt (0).toString ());

您只需删除方括号,默认情况下不需要
StringUtils
列表
toString()
以逗号分隔的格式显示元素

System.out.println (new StringBuilder (aAndB.toString())
                                 .deleteCharAt (aAndB.toString().length ()-1)
                                 .deleteCharAt (0).toString ());

您只需要删除方括号,因为您使用的是Java 7,所以可以编写一个静态方法来执行该任务

List a=Arrays.asList(“a”、“b”、“c”);
列表b=Arrays.asList(“d”、“e”、“f”);
字符串s=连接(“,”,a,b);
系统输出打印项次;
List aa=Arrays.asList(101、102、103);
listb=Arrays.asList(104、105、106);
字符串ss=join(“:”,aa,bb);
系统输出打印LN(ss);
}
公共静态字符串联接(字符串分隔符、列表…列表){
StringBuilder sb=新的StringBuilder();
用于(列表:列表){
对于(T项:列表){
某人附加(定界符);
某人附加(项目);
}
}
返回sb.substring(delimiter.length()).toString();
}
}
这是印刷品

a、 b、c、d、e、f

101:102:103:104:105:106由于您使用的是Java 7,因此可以编写一个静态方法来执行该任务

List a=Arrays.asList(“a”、“b”、“c”);
列表b=Arrays.asList(“d”、“e”、“f”);
字符串s=连接(“,”,a,b);
系统输出打印项次;
List aa=Arrays.asList(101、102、103);
listb=Arrays.asList(104、105、106);
字符串ss=join(“:”,aa,bb);
系统输出打印LN(ss);
}
公共静态字符串联接(字符串分隔符、列表…列表){
StringBuilder sb=新的StringBuilder();
用于(列表:列表){
对于(T项:列表){
某人附加(定界符);
某人附加(项目);
}
}
返回sb.substring(delimiter.length()).toString();
}
}
这是印刷品

a、 b、c、d、e、f

101:102:103:104:105:106

要获取短代码,您可以:

String res = String.join(",", a) + "," + String.join(",", b);

要获得简短的代码,您可以:

String res = String.join(",", a) + "," + String.join(",", b);

什么是“字符串utils”?你是不是被困在Java 7上,或者你不能只做
String.join(“,”,a)
Stream.of(a,b).flatMap(List::Stream).collect(Collectors.joining(“,”)
)并不难Google@RoddyoftheFrozenPeas是的,很抱歉忘了提到我被困在Java 7上,很不幸。@WJS我从未见过这种情况发生,除非旧代码使用的是不应该使用的东西,比如使用sun.*或com.sun.*类,或者使用反射来处理JavaSE类中的私有字段。什么是“字符串utils”?你是不是被困在Java 7上,或者你不能只做
String.join(“,”,a)
Stream.of(a,b).flatMap(List::Stream).collect(Collectors.joining(“,”)
)并不难Google@RoddyoftheFrozenPeas是的,很抱歉忘了提到我被困在Java 7上,很不幸。@WJS我从未见过这种情况发生,除非旧代码使用的是不应该使用的操作,比如使用sun.*或com.sun.*类,或者使用反射来处理JavaSE类中的私有字段。
String.join
是在Java8中添加的。OP在Java7上。@RoddyOfFrozenPeas我可以做StringUtils.join(a,“,”+”,“+StringUtils.join(b,”,”);是否改为使用此选项?@BigMon-StringUtils.join(假设它是来自apache commons的lang/lang3库)在功能上与String.join相同。这将是最具可读性的建议解决方案。
String.join
是在Java8中添加的。OP在Java7上。@RoddyOfFrozenPeas我可以做StringUtils.join(a,“,”+”,“+StringUtils.join(b,”,”);是否改为使用此选项?@BigMon-StringUtils.join(假设它是来自apache commons的lang/lang3库)在功能上与String.join相同。这将是最具可读性的解决方案。好主意。您还可以将此方法直接应用于各个列表,这样就可以省略将所有元素添加到第三个列表的中间步骤<代码>字符串aAndB=(a.toString()+”,“+b.toString()).replaceAll(“[\\[\]]”,”)
@Eritrean我认为直接替换
[
]
不是一个好主意。List元素也可以包含这些字符。这是真的。我一点也没想过。巧妙的解决方案,戈文达。好主意。您还可以将此方法直接应用于各个列表,这样就可以省略将所有元素添加到第三个列表的中间步骤<代码>字符串aAndB=(a.toString()+”,“+b.toString()).replaceAll(“[\\[\]]”,”)
@Eritrean我认为直接替换
[
]
不是一个好主意。List元素也可以包含这些字符。这是真的。我没有看见你