交错两个字符串数组
Interleave two string arrays
在Java中,我有这样的东西:
String[] firstname = { "name1", "name2", "name3" };
String[] lastname = { "lastname1", "lastname2", "lastname3" };
我需要的结果是这样的:
String[] newArray = {"name1 lastname1", "name2 lastname2", "name3 lastname3"};
假设长度相同,将姓氏一一组合成String[] newArray
。
Java7 和更早版本的方法可能只是使用循环并遍历所有名字和姓氏:
String[] fullname = new String[firstname.length];
for (int i=0; i < firstname.length; ++i) {
fullname[i] = firstname[i] + " " + lastname[i];
}
您可以使用 Java 8 的流 API 并使用整数流对两个数组进行索引。
String[] firstname = { "name1", "name2", "name3" };
String[] lastname = { "lastname1", "lastname2", "lastname3" };
String[] newArray = IntStream.range(0, firstname.length).boxed()
.map(i -> firstname[i] + " " + lastname[i]).toArray(String[]::new);
System.out.println(Arrays.toString(newArray));
这会产生
[name1 lastname1, name2 lastname2, name3 lastname3]
这个答案假定 lastname
的长度至少是 firstname
的长度,但 OP 已经说明了这一点。
在Java中,我有这样的东西:
String[] firstname = { "name1", "name2", "name3" };
String[] lastname = { "lastname1", "lastname2", "lastname3" };
我需要的结果是这样的:
String[] newArray = {"name1 lastname1", "name2 lastname2", "name3 lastname3"};
假设长度相同,将姓氏一一组合成String[] newArray
。
Java7 和更早版本的方法可能只是使用循环并遍历所有名字和姓氏:
String[] fullname = new String[firstname.length];
for (int i=0; i < firstname.length; ++i) {
fullname[i] = firstname[i] + " " + lastname[i];
}
您可以使用 Java 8 的流 API 并使用整数流对两个数组进行索引。
String[] firstname = { "name1", "name2", "name3" };
String[] lastname = { "lastname1", "lastname2", "lastname3" };
String[] newArray = IntStream.range(0, firstname.length).boxed()
.map(i -> firstname[i] + " " + lastname[i]).toArray(String[]::new);
System.out.println(Arrays.toString(newArray));
这会产生
[name1 lastname1, name2 lastname2, name3 lastname3]
这个答案假定 lastname
的长度至少是 firstname
的长度,但 OP 已经说明了这一点。