新手求问,关于JAVA的 String方法

这样子是输出还是 abcd没有用到转换大写的方法
String s="abcd";
s.toUpper();
System.out.println(s);

这样子输出ABCD,用到了大写的方法
String s="abcd";
System.out.println(s.toUpper());

为什么会这样呢

8个回答

新手求解求解求解求解求解求解

建议从浅复制和深复制去思考

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)

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!