use*_*106 1 java string boolean replaceall
boolean b1 = false;
boolean b2 = true;
String s = new String(b1+""+b2);
s.replaceAll("false", "f");
s.replaceAll("true", "t");
Run Code Online (Sandbox Code Playgroud)
什么都没有被取代.我仍然得到"虚假的真实".我想将String的所有"false"和"true"替换为"f"和"t".
我很确定我没有以正确的方式做到这一点,这就是为什么我需要你的帮助,我将不胜感激.
java中的字符串是不可变的,这意味着,一旦创建,String对象的值就不会改变.
因此,方法replaceAll()(或String类中的几乎所有其他方法)都被设计为返回一个新字符串而不是修改旧字符串.
因此呼叫应该是
s = s.replaceAll("false", "f");
Run Code Online (Sandbox Code Playgroud)
更多关于不变性的信息就在这里
当你调用.replaceAll("false","f")时,你根本就没有改变String.您需要将该值分配给s,如下所示:
s = s.replaceAll("false", "f");
Run Code Online (Sandbox Code Playgroud)