3 回答

TA貢獻(xiàn)2012條經(jīng)驗(yàn) 獲得超12個(gè)贊
Integer并且char是單獨(dú)的類型。如果您想要將整數(shù)表示為數(shù)字,則需要對(duì)其進(jìn)行轉(zhuǎn)換(強(qiáng)制轉(zhuǎn)換只會(huì)為您提供 ASCII 表示)。此外,您不能toArray()使用原始數(shù)組進(jìn)行調(diào)用。您必須手動(dòng)迭代和轉(zhuǎn)換:
matrix[i] = new char[row.size()];
for (int j = 0; j < row.size(); j++) {
matrix[i][j] = Character.forDigit(row.get(j), 10);
}

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超4個(gè)贊
基本上你正在嘗試轉(zhuǎn)換List<Integer>
為char[]
這一行:
matrix[i] = row.toArray(new char[row.size()]);
你可以這樣做:
matrix[i] = row.stream() .map(j -> Integer.toString(j)) .collect(Collectors.joining()) .toCharArray();

TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超5個(gè)贊
我們可以完全使用 java-8 流來做到這一點(diǎn),如下所示,我從Kartik 的Integer
關(guān)于 Stream of到 Stream of轉(zhuǎn)換的答案中得到了啟示char[]
:
List<List<Integer>> list = Arrays.asList(Arrays.asList(1,2,3), Arrays.asList(4,5,6), Arrays.asList(7,8,9));char[][] chars = list.stream().map(l -> l.stream() .map( i-> Integer.toString(i)) .collect(Collectors.joining()) .toCharArray()) .toArray(char[][]::new);
添加回答
舉報(bào)