【发布时间】:2015-04-20 21:03:06
【问题描述】:
当我在以下代码中使用 " 时,为什么我的代码可以工作:
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';
}
}
}
但是当我在下面的代码中使用 ' 时不起作用:
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';
}
}
}
总是说“无效的字符常量”。
- 网格是一个二维字符变量
- 行是一个整数
- player 是受保护的超类(窗口),并且在超类的构造函数中占用了黄色值:
protected String player;
public window() {
player = "yellow";
}
【问题讨论】:
-
"" 用于字符串,'' 用于字符。
-
总是使用equals方法比较String对象
-
为什么我的代码可以工作,当我在下面的代码中使用 " 时 当你使用双引号时你的代码 编译 但是 它赢了'没有按预期工作因为
Strings是使用equals方法比较的,而不是==。有关这方面的更多信息,请查看How do I compare strings in Java? -
该死,我正在输入一个简洁的答案,问题被关闭了。
标签: java string if-statement equality