【发布时间】:2018-04-10 15:31:43
【问题描述】:
我得到了一个只有数字的二维字符串数组;
System.out.println(Arrays.deepToString(temp));
[[1, 3, 1, 2], [2, 3, 2, 2], [5, 6, 7, 1], [3, 3, 1, 1]]
我需要检查数组是否只包含数字,否则会抛出异常。
System.out.println(Arrays.deepToString(temp[0]).matches("[0-9]*")); - return false
System.out.println(Arrays.deepToString(temp[0]).matches("[0-9]+")); - return false
据我所知,代码表明数组不只包含数字,因为当转换为 char 时,数组就像:
[[, [, 1, ,, , 3, ,, , 1, ,, , 2, ], ,, , [, 2, ,, , 3, ,, , 2, ,, , 2, ], ,, , [, 5, ,, , 6, ,, , 7, ,, , 1, ], ,, , [, 3, ,, , 3, ,, , 1, ,, , 1, ], ]]
如何检查它是否只包含数字?
【问题讨论】:
-
有一个简单的解决方案,但在我开始之前:您是否有任何理由不只是从一开始就将其存储为数字?
-
检查this answer 然后只需附加一个
allMatch来检查它们是否是数字。 -
原因 - 技术任务