如何以特定方式打印两个字符数组的元素?

How to print elements of two char arrays in a specific way?

输入:

2,3,1
5,2,3

预期输出:

2,5,3,2,1,3

所有数字应以逗号分隔。

我的代码:

public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);

    String input1 = scanner.nextLine();
    char[] elms1 = input1.toCharArray();

    String input2 = scanner.nextLine();
    char[] elms2 = input2.toCharArray();

    for (int i = 0; i < elms1.length; i++)
        System.out.print(elms1[i] + "," + elms2[i]);
}

唉,它输出了一个带有额外逗号的意外结果,看起来像:

输入:

2,3,1
5,2,3

我的输出是:

2,5,,,3,2,,,1,3

如何消除多余的逗号以获得​​正确的输出?

你可以这样做:

Scanner scanner = new Scanner(System.in);

String input1 = scanner.nextLine();
List<Integer> elms1 = Arrays.stream(input1.split(",")).map(Integer::parseInt).collect(Collectors.toList());

String input2 = scanner.nextLine();
List<Integer> elms2 = Arrays.stream(input2.split(",")).map(Integer::parseInt).collect(Collectors.toList());

for (int i = 0; i < elms1.size()-1; i++) {
    System.out.print(elms1.get(i) + "," + elms2.get(i) + ",");
}

System.out.print(elms1.get(elms1.size()-1) + "," + elms2.get(elms1.size()-1));

输出(基于您的输入):

2,5,3,2,1,3

您可以更改当前代码的打印语句,将逗号视为有效字符输入,每次从每个数组中获取 2 个字符。这是您的代码修复:

for (int i = 0; i < elms1.length; i += 2) {
    if (i == elms1.length - 1)
        System.out.print(elms1[i]+","+elms2[i]);
    else
        System.out.print(elms1[i]+""+elms1[i+1]+""+elms2[i]+""+elms2[i+1]);
}

你所要做的就是在你的打印语句中做一点改变:

for (int i = 0; i < elms1.length; i++) {
    if (i == elms1.length - 1) {
        System.out.print(elms1[i] + "," + elms2[i]);
    } else {
        System.out.print(elms1[i] + "," + elms2[i] + ",");
    }
}