验证二维数组的数字顺序

时间:2014-06-29 15:37:34

标签: java arrays

所以,我有一个2D数组,其列应该按数字顺序排序。但是,我想确保用户的输入符合此规则。这段代码是我尝试确保用户输入有效。

for (int j = 0; j < map[0].length; j++) {
    for (int i = 0; i < map.length - 1; i++) {
        if (map[i][j] != null && map[i + 1][j] != null) {
            if (x[i][j] > x[i + 1][j]) {
                throw new IllegalArgumentException();
            }
        }
    }
}

这适用于第一列,但是当它循环到第二列的顶部时,会抛出IllegalArgumentException,因为第二列中的第一个数字通常小于第一列中的最后一个数字。但是,由于列按数字顺序排序,因此这是预期的行为。所以,我的问题是:有没有更好的方法来检查列中的下一个数字是否总是大于当前数字,并为每列执行此操作。如前所述,我目前的尝试引发了异常。

这是输入程序的元素表。最后一个元素是抛出异常的地方(9B):

 1A XXX
 2A XXX
 2A XXX
 3A XXX
XXX XXX
 9A  9B
10A
11A
12A
13A
20A

0 个答案:

没有答案