如果我将userLineInput
设置为[s, a, v, e]
,则应输出“Game Saved”,但输出为“error”。我做错了什么?
public ArrayList<Character> userLineInput;
public String userLineInputToString;
StringBuilder sb = new StringBuilder();
for (Character s : userLineInput) {
sb.append(s);
}
sb.toString = userLineInputToString;
if (userLineInputToString == "save") {
Save.savePlayerSave();
System.out.println("Game Saved");
} else {
System.out.println(userLineInputToString);
}
但如果我做,
}else{
System.out.println("error");}
输出为“save”,因此它将Array转换为String。
答案 0 :(得分:3)
更改
sb.toString = userLineInputToString
到
userLineInputToString = sb.toString();
并且
将字符串相等性与equals()方法进行比较,而不是==
答案 1 :(得分:1)
始终使用string
与equals
==
将行更改为
if ("save".equals(userLineInputToString)) //To prevent null pointer, it better
//to test equals on constants.
您正在构建字符串构建器sb
,您应该将其分配给userLineInputToString
。
从
更改行sb.toString = userLineInputToString
到
userLineInputToString = sb.toString();