Scanner.nextLine() 发送数据,但不会在函数内部比较数据



尝试从扫描仪获取数据并将其传递给一个函数,该函数将该数据与数组进行比较,但当我发送扫描仪接收到的数据时,它不会进行比较。

扫描类

Key.use(scan.nextLine().toString(), retrievedkey);

在数组中迭代以将第一个参数与数组列表进行比较的键函数

public static void use(String door, String[][] key){
var arraylength = key[1].length;
for (int i = 0; i<=arraylength;){
i++;
if (door == key[1][i]) {
canOpen = true;
System.out.println(canOpen);
}
else {
canOpen = false; 
System.out.println(canOpen + " " + door + " " + Arrays.toString(key[1]));
}
return;
}

}

}

当与扫描功能分开发送数据时,按键功能起作用。例如:

Key.use("Front door", retrievedkey)

但是扫描仪将输入打印为"0";门";但未被函数读取。有什么帮助吗?谢谢

if (door == key[1][i]) {
canOpen = true;
System.out.println(canOpen);
}

你应该使用

if (door.equals(key[i][1]))

而不是

if (door == key[1][i])

并且在中不需要使用toString((方法

Key.use(scan.nextLine().toString(), retrievedkey);

因为nextLine((读取字符串作为输入。

最新更新