Java哈希映射值检查

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(

首先,感谢所有愿意阅读这些代码并帮助我的人

我有一个Hashmap,它只是将一块板打印到控制台,如下所示:

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...
}