下面是一个String类,功能是对当前字符串操作后并不改变字符串本身,而是又生成另一个实例。代码如下:- class StringBufferExample
- {
- public static void main(String[] args)
- {
- String st1="This is a String example";
- System.out.println("before changed,st1="+st1);
- String st2=st1.toLowerCase();
- System.out.println("After changed,st1="+st1);
- System.out.println("st2="+st2);
-
- }
- }
复制代码 结果为:before changed,st1=This is a String example
after changed,st2=This is a String example
st2=this is a string example
对st1操作后,st1不变。可是将其中的String 类改成StringBuffer类就出现错误了。代码如下:- class StringBufferExample
- {
- public static void main(String[] args)
- {
- StringBuffer st1="This is a StringBuffer example";
- System.out.println("before changed,st1="+st1);
- StringBuffer st2=st1.toLowerCase();
- System.out.println("After changed,st1="+st1);
- System.out.println("st2="+st2);
-
- }
- }
复制代码 不是说SringBuffer类处理可变字符串,当修改一个StringBuffer类的字符串时,不需要再创建一个新的字符串对象,而是直接对原字符串进行操作。可是变成下面这样的程序就为什么出错了,求大神给予指点。谢谢! |