"和"有什么区别?

Ich*_*sos 0 java string if-statement equality

为什么我的代码工作,当我在以下代码中使用"时:

for(int i=0;i<7;i++){
        if(grid[row][i]!=0){
            if(player == "yellow"){
                grid[row][i-1] = 'y';
            }
            else if(player == "red"){
                grid[row][i-1] = 'r';
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

但是当我在以下代码中使用'时,请不要工作:

for(int i=0;i<7;i++){
        if(grid[row][i]!=0){
            if(player == 'yellow'){
                grid[row][i-1] = 'y';
            }
            else if(player == 'red'){
                grid[row][i-1] = 'r';
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

它总是说,"无效的字符常量".
- grid是一个二维char变量
- row是一个interger
-player是超类(window)受保护的,并且在超类的构造函数中占用了黄色值:

protected String player;

public window() {
    player = "yellow";
}
Run Code Online (Sandbox Code Playgroud)

kir*_*rby 5

角色只是一个角色,例如'a'或'b'.字符串是串在一起的一个或多个字符,如"hello world"或"p".单引号(')用于字符文字,而双引号(")用于字符串.

  • 你的初始陈述不太正确,除非这是一个与C#不同的区域,一个字符是单个字符,但是因为它只有一个字符并不意味着它是一个字符."a"和"a"是两个不同的值."a"是长度为1的字符串,"a"是char值. (2认同)