这样子是输出还是 abcd没有用到转换大写的方法
String s="abcd";
s.toUpper();
System.out.println(s);
这样子输出ABCD,用到了大写的方法
String s="abcd";
System.out.println(s.toUpper());
为什么会这样呢
新手求解求解求解求解求解求解
s.toUpper();方法,并不会改变s字符串的值,它只是返回一个s字符串的转大写的值。
建议从浅复制和深复制去思考
刚才想通了
谢谢各位
toUper()是一个有返回值的方法。你直接执行之后,没有给a赋值,所以 输出abcd。第二次你是直接输出执行后的结果,就是ABCD
toUpper()方法是返回一个操作结果的,不会对源字符串进行对应的处理的,可以看这个方法的使用说明。
1.转换大小写应该是s.toUpperCase()吧;
2.String是由final修饰的,就是不可变的;
你先前给s.toUpperCase()是生成了另外的一个对象's1',但是你打印的是‘s’,所有是小写;
而System.out.println(s.toUpperCase())是打印的's1',所以是大写;
明白了么?
s.toUpper();这条语句并不能改变s的结果,System.out.println(s) 输出的还是abcd
System.out.println(s.toUpper()) 相当于两句话,
即String tmp = s.toUpper() , System.out.println(tmp)