我正在尝试将两个带有逗号分隔符的字符串连接在一起。我想循环它使其成为连续的,这意味着然后在逗号之前的字符串一中的第一项随后是字符串二中的第一项,依此类推。这是两个字符串,以及我希望它们如何加入。
this.elv
这甚至可能吗?我有连接两个字符串的代码,但没有按我需要的顺序放置它们。
答案 0 :(得分:2)
用,
分割一个和两个,然后使用IntStream
来生成两个令牌数组的索引,并通过串联然后是,
来联接元素。喜欢,
String a = "0,E,EEE,0,0,WWWW,EE,W,EE", b = "0,NNN,N,SS,0,S,N,N,SS";
String[] aTok = a.split(","), bTok = b.split(",");
String out = IntStream.range(0, Math.min(aTok.length, bTok.length))
.mapToObj(i -> aTok[i] + bTok[i]).collect(Collectors.joining(","));
System.out.println(out);
输出(按要求)
00,ENNN,EEEN,0SS,00,WWWWS,EEN,WN,EESS
答案 1 :(得分:1)
将每个字符串拆分为一个字符串数组,
将两个表中具有相同索引的项目连接起来,并在每对之后附加一个,
:
String s1 = "0,E,EEE,0,0,WWWW,EE,W,EE";
String s2 = "0,NNN,N,SS,0,S,N,N,SS";
String[] tokens1 = s1.split(",");
String[] tokens2 = s2.split(",");
StringBuilder sb = new StringBuilder("");
for (int i = 0; i < tokens1.length; i++) {
sb.append(tokens1[i]).append(tokens2[i]).append(",");
}
sb.deleteCharAt(sb.length() - 1); // remove the last ","
String result = sb.toString();
System.out.println(result);
当然,这仅在两个字符串可以分割为相同数量的项目时有效。