Java哈希映射值检查
首先,感谢所有愿意阅读这些代码并帮助我的人 我有一个Hashmap,它只是将一块板打印到控制台,如下所示:Java哈希映射值检查,java,if-statement,hashmap,Java,If Statement,Hashmap,首先,感谢所有愿意阅读这些代码并帮助我的人 我有一个Hashmap,它只是将一块板打印到控制台,如下所示: public class Square { private char status; public Square(String statusp) { if(statusp.equals("empty")) { this.status = '.'; }else if(statusp.equals(
public class Square {
private char status;
public Square(String statusp) {
if(statusp.equals("empty")) {
this.status = '.';
}else if(statusp.equals("black")) {
this.status = 'X';
}else if(statusp.equals("white")) {
this.status = 'O';
}else {
System.out.println("ERROR: status can only be: empty, black, white");
}
}
public char getStatus() {
return status;
}
}
我尝试将| |改为&&但没有结果。
我还尝试:
if(board.board.get(move) == empty) {
board.board.replace(move, black);
board.printBoard();
}else {
System.out.println("that spot is already taken");
}
但是不管我输入什么,它总是返回else语句,if语句永远不会为真,即使move等于空
知道为什么第二个if语句不起作用吗?它给了我零错误。有两个问题:如果总是正确的,因为空与黑和白都不同,你需要获得电路板位置的状态,并将其与“空”进行比较,如
如果你使用
|
的话,它总是正确的。因为如果它是黑色的,它与白色不同,反之亦然
System.out.println(p1.getName().toUpperCase() + ", please enter your move:");
String move = io.readInput();
//check if the hashmap contains the key of move
if (board.board.containsKey(move)) {
//check if the value of key move isnt equal to Square black or white (X or O)
if(board.board.get(move) != black || board.board.get(move) != white ) {
board.board.replace(move, black);
}else {
System.out.println("that spot is already taken");
}
board.printBoard();
}
if(board.board.get(move) == empty) {
board.board.replace(move, black);
board.printBoard();
}else {
System.out.println("that spot is already taken");
}
if (board.get(move).getStatus().equals("empty")) {
//Code here...
}