2 bb520mb bb520mb 于 2016.05.06 17:33 提问

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

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

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

为什么会这样呢

10个回答

bb520mb
bb520mb   2016.05.06 17:37

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

caoleiscu163
caoleiscu163   2016.05.06 17:46

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

zs343961443
zs343961443   2016.05.06 17:45

s.toUpper();方法,并不会改变s字符串的值,它只是返回一个s字符串的转大写的值。

bb520mb
bb520mb   2016.05.06 17:50

刚才想通了
谢谢各位

liu4071325
liu4071325   2016.05.06 17:53

toUper()是一个有返回值的方法。你直接执行之后,没有给a赋值,所以 输出abcd。第二次你是直接输出执行后的结果,就是ABCD

u014717036
u014717036   2016.05.06 18:05

toUpper()方法是返回一个操作结果的,不会对源字符串进行对应的处理的,可以看这个方法的使用说明。

wb_it_man
wb_it_man   2016.05.06 18:42

我也是JAVA初学者,建议你用String方法时,看一下API

MCtime
MCtime   2016.05.06 18:55

1.转换大小写应该是s.toUpperCase()吧;
2.String是由final修饰的,就是不可变的;
你先前给s.toUpperCase()是生成了另外的一个对象's1',但是你打印的是‘s’,所有是小写;
而System.out.println(s.toUpperCase())是打印的's1',所以是大写;
明白了么?

havedream_one
havedream_one   2016.05.06 20:07

s.toUpper();这条语句并不能改变s的结果,System.out.println(s) 输出的还是abcd
System.out.println(s.toUpper()) 相当于两句话,
即String tmp = s.toUpper() , System.out.println(tmp)

CSDNXIAON
CSDNXIAON   2016.05.07 11:51

string类的常用方法与java的nio
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!