3
我需要從stdin讀取整數列表,並將它們變成java.awt.Point(x,y)數組。如何將整數流轉換爲java.awt.Point?
輸入的格式是X Y X Y X Y ...
我能做到這一點的非流路這樣,
Scanner scanner = new Scanner(System.in).useDelimiter("\n");
String[] input = scanner.next().split("\\s+");
Point[] points = new Point[input.length/2];
for (int i = 0; i < input.length/2; i++) {
points[i] = new Point(Integer.parseInt(input[2*i]),
Integer.parseInt(input[2*i+1]));
}
但是我怎麼也使用流呢?我被卡在map()
。
List<Point> points = Arrays.stream(scanner.next().split("\\s+"))
.map(Integer::parseInt).map(??).collect(Collectors.toList());
在此先感謝。
如果我事先知道標準輸入的整數個數,它會起作用嗎? – user5245796
@ user5245796如果您有整數列表,您可以跳過第一部分(將其從字符串讀取並轉換爲整數)並直接轉到第二部分。 – alfasin
我知道有多少個整數,但不知道它們是什麼,直到它們從標準輸入讀取。猜猜我仍然需要兩個步驟。謝謝。 – user5245796