字符串替换不起作用,因为我认为它应该

时间:2014-03-18 22:17:48

标签: java string replace

public static boolean passwordConfirmed() {
    String attempt = JOptionPane.showInputDialog("Password: ");
    FileReader fstream = null;
    String password = "";
    try {

        fstream = new FileReader("pass.txt");
        BufferedReader in = new BufferedReader(fstream);

        password = in.readLine();
        password.replace("Password: ", " ");

        System.out.println(password);

    } catch (IOException e) {
        e.printStackTrace();
    }

    if (attempt.equals(password)) {
        System.out.print("True");
        return true; 
    } else System.out.println("false");
    return false;
}

尝试删除"密码:"从线。 它得到了行"密码:" +之后的文字(密码) 我想删除"密码:",所以我剩下的只是后来的文字。

1 个答案:

答案 0 :(得分:4)

始终重新分配。

password = password.replace("Password: ", " ");

字符串在Java中是不可变的,这意味着您无法修改它的现有实例。通过重新分配它,您将把字符串的新值捕获到现有变量中。