本人有如下,代码: StringBuffer stringBuffer = new StringBuffer(); StringBuffer stringBuffer1 = new StringBuffer(); stringBuffer.append("234"); stringBuffer1 = stringBuffer;// 赋值 stringBuffer.append("567");//修改stringBuffer 的同时也修改了stringBuffer1 System.out.println(stringBuffer);// 234567 System.out.println(stringBuffer1);// 234567我需要创建多个StringBuffer 对象,它们的初始值一样, 我期望得到的结果是,我在修改后面的值的时候,不会影响到其他前面的值(修改stringBuffer 的同时不修改了stringBuffer1),我该怎么做,小弟是菜鸟,求大神解答?
6 回答
回首忆惘然
TA贡献1847条经验 获得超11个赞
慕妹3146593
TA贡献1820条经验 获得超9个赞
在Java中,对象之间的赋值是引用赋值,改变赋值对象的值会引发原对象的值发生改变。如果要实现你说的效果,应当使用构造方法创建新对象。比如说,你可以这样做:
final String initialValue="234";
StringBuffer s1=new StringBuffer(initialValue);
StringBuffer s2=new StringBuffer(initialValue);
侃侃尔雅
TA贡献1801条经验 获得超16个赞
stringBuffer1.replace(0,stringBuffer1.length(),stringBuffer.toString());
这个也许可以帮助你
或者你就不先实例话stringBuffer1 而在赋值的那一段实例化并传入stringBuffer.toString()
添加回答
举报
0/150
提交
取消