gpt4 book ai didi

java - 检查 ArrayList 中的重复数字 - Java

转载 作者:行者123 更新时间:2023-11-29 08:25:57 24 4
gpt4 key购买 nike

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

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();
}

在这里,我将它加载到我的主程序中。代码更加详细,但这些应该是涉及问题的部分。

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();
}
}

最佳答案

问题

您正在使用 charAt 并尝试将其结果与数字进行比较:

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

但是,这样做是在比较 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 3

Character.getNumericValue(a.charAt(0)) 返回字符的数值。


实现

将其实现到您的代码中将如下所示:

Character.getNumericValue(list.get(j).charAt(i)) == a

关于java - 检查 ArrayList 中的重复数字 - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53145183/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com