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

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; } 

试图从该行中删除“密码:”。 它得到“密码:”+文字后面的行(密码)我想删除“密码:”,所以我剩下的就是纯粹的文字了。

始终重新分配它。

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

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