Character ArrayList不会正确转换为String

时间:2014-06-02 16:53:31

标签: java string arraylist

如果我将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。

2 个答案:

答案 0 :(得分:3)

更改

sb.toString = userLineInputToString

userLineInputToString = sb.toString();

并且

将字符串相等性与equals()方法进行比较,而不是==

答案 1 :(得分:1)

始终使用stringequals

进行比较==

将行更改为

    if ("save".equals(userLineInputToString)) //To prevent null pointer, it better
    //to test equals on constants.

您正在构建字符串构建器sb,您应该将其分配给userLineInputToString

更改行
sb.toString = userLineInputToString 

userLineInputToString = sb.toString();