检查 ArrayList 中的数字重复 - Java

我目前正在制作一个数独程序,但是我当前的代码似乎让我失望。如果一行多次包含相同的数字,下面的脚本应该打印出“不一致的数独谜题”,但遗憾的是它没有......我尝试了几种不同的尝试,但都没有成功。


public void checkRow() {

    int count = 0;


    for(int j = 0; j < list.size(); j++) {

        for(int a = 1; a < 10; a++) {

            for (int i=0; i < list.get(j).length(); i++) {

                if(list.get(j).charAt(i) == a) {

                    count++;

                    if(count >= 2) {

                        System.out.println("Inconsistent sudoku puzzle");

                        count = 0;

                    }

                }

            }

            count = 0;

        }

    }

}

这是我所有错误检查的集合:


public void errorCheck() {

    this.checkRow();

    this.checkColumn();

    this.checkBox();

}

在这里,我将它加载到我的 main.js 中。代码要复杂得多,但这些应该是涉及问题的部分。


public static void main(String[] args) throws Exception  {

    Sudoku s = new Sudoku("C:\\Users\\caspe\\Downloads\\Sudoku001.sdk");

    s.printBoard();

    s.errorCheck();

    s.getNum();



    while(getNum() > 0) {

        System.out.println("Next move, please (row , column , value )");

        Scanner scanner = new Scanner(System.in);

        int row = scanner.nextInt();

        int column = scanner.nextInt() ;

        int value = scanner.nextInt();

        if (s.moves(row, column, value)); {

            s.errorCheck();

        }


        s.printBoard();

    }

}


慕容森
浏览 190回答 3
3回答

慕村225694

问题您正在使用charAt并尝试将其结果与数字进行比较:list.get(j).charAt(i) == a&nbsp;但是,这样做是将字符的ascii值与数字进行比较。示例:String a = "3";System.out.println((int) a.charAt(0)); // This prints 51解决方案如果您想比较数值,您必须执行以下操作:String a = "3";System.out.println(Character.getNumericValue(a.charAt(0))); // This prints 3Character.getNumericValue(a.charAt(0)) 返回字符的数字值。执行将其实现到您的代码中将如下所示:Character.getNumericValue(list.get(j).charAt(i)) == a

宝慕林4294392

这一行:if(list.get(j).charAt(i)&nbsp;==&nbsp;a)总是false因为您将 achar与 an进行比较int。将其替换为if((list.get(j).charAt(i)-'0')&nbsp;==&nbsp;a)list.get(j).charAt(i)-'0'&nbsp;为您提供字符的数字表示

动漫人物

问题是:'if(list.get(j).charAt(i) == a)'它与 ascii 表上的“a”值进行比较
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java