两个数组各自一个游标指针,按位添加到结果数组
注意第二行字符串可能为空串,关键空串Scanner读不到,需要判断是否有next
推荐一波stream流式编程,java玩出python的感觉。
package org.niuke.solution26;
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
if(!sc.hasNext()){
System.out.println(str);
return;
}
String[] s1 = str.split(",");
String[] s2 = sc.nextLine().split(",");
int[] ints1 = Arrays.stream(s1).mapToInt(Integer::parseInt).toArray();
int[] ints2 = Arrays.stream(s2).mapToInt(Integer::parseInt).toArray();
int p1 = 0, p2 = 0;
int[] s = new int[s1.length + s2.length];
while (p1 < ints1.length || p2 < ints2.length) {
if(p1 < ints1.length && p2 < ints2.length){
if(ints1[p1] <= ints2[p2]){
s[p1 + p2] = ints1[p1];
p1++;
}else{
s[p1 + p2] = ints2[p2];
p2++;
}
}else if(p1 < ints1.length){
s[p1 + p2] = ints1[p1];
p1++;
}else{
s[p1 + p2] = ints2[p2];
p2++;
}
}
for(int i = 0; i < s.length; i++){
if(i < s.length - 1){
System.out.print(s[i] + ",");
}else{
System.out.print(s[i]);
}
}
}
} 
京公网安备 11010502036488号