bb520mb
bb520mb
2016-05-06 09:33
采纳率: 50%
浏览 1.0k

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

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

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

为什么会这样呢

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

8条回答 默认 最新

  • bb520mb
    bb520mb 2016-05-06 09:37

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

    点赞 评论
  • zs343961443
    人称帅哥 2016-05-06 09:45

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

    点赞 评论
  • caoleiscu163
    caolei361 2016-05-06 09:46

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

    点赞 评论
  • bb520mb
    bb520mb 2016-05-06 09:50

    刚才想通了
    谢谢各位

    点赞 评论
  • liu4071325
    heartbeaty 2016-05-06 09:53

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

    点赞 评论
  • u014717036
    100000000000000000 2016-05-06 10:05

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

    点赞 评论
  • MCtime
    Mei超 2016-05-06 10:55

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

    点赞 评论
  • havedream_one
    havedream_one 2016-05-06 12:07

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

    点赞 评论

相关推荐