如何以特定方式打印两个字符数组的元素?
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] + ",");
}
}
输入:
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] + ",");
}
}