Со следующим кодом:
Scanner s = new Scanner(System.in);
ArrayList<String> result = new ArrayList<String>();
while(s.hasNext())
result.add(s.next());
s.close();
return result;
Если мой ввод вводится вручную на консоли следующим образом:
123
456
789
При вводе все в порядке.
Но если я скопирую и вставлю ввод в консоль CMD, вывод будет:
789
Ака, только первая строка.
Использование: CMD, JDK 14, Windows 10
Полный код:
import java.util.ArrayList;
import java.util.Scanner;
public class Client {
private static ArrayList<String> readLines() {
Scanner s = new Scanner(System.in);
ArrayList<String> result = new ArrayList<String>();
while(s.hasNext())
result.add(s.next());
s.close();
return result;
}
private static int[] convertLine(String line) {
char[] digits = line.toCharArray();
int[] result = new int[digits.length];
int n = 0;
for (char a : digits)
result[n++] += a-48;
return result;
}
private static int[][] convertLines(ArrayList<String> a) {
int[][] result = new int[a.size()][];
int n = 0;
for (String line : a)
result[n++] = convertLine(line);
return result;
}
@SuppressWarnings({"resource"})
static public void main(String[] args) {
int[][] cells = convertLines(readLines());
for (int i = 0; i < cells.length; i++) {
for (int j = 0; j < cells[i].length; j++)
System.out.print(cells[i][j]);
System.out.print("\n");
}
}
}
Что я делаю не так?