【问题标题】:Java string not converted to lower case [duplicate]Java字符串未转换为小写[重复]
【发布时间】:2015-08-06 14:53:02
【问题描述】:

为什么字符串s转小写后会打印"Hello, World"

public class Practice {
    public static void main(String[] args){
        String s = "Hello, World";
        s.toLowerCase();
        System.out.println(s);
    }
}

【问题讨论】:

    标签: java string


    【解决方案1】:

    Strings 是不可变的。需要将String#toLowerCase的结果重新赋值给变量:

    s = s.toLowerCase();
    

    【讨论】:

      【解决方案2】:

      字符串是 Java 中的一种特殊对象。 Java 开发人员故意将它们创建为不可变(出于各种安全和性能原因)。

      这意味着当你认为你改变了一个 String 对象的状态时,实际上是创建了一个新的 String 对象(而之前的并没有真正改变)。

      因此,要使您的代码正常工作,您必须将方法的结果分配给某个字符串:

      s = s.toLowerCase();
      

      【讨论】:

      • 当你改变一个 String 对象的状态时这个措辞是错误的。由于它是不可变的,因此您无法更改其状态。任何涉及更改对象状态的操作都将创建具有新状态的新对象,而 对象的状态将保持不变。
      • @LuiggiMendoza 我在写它的时候正在考虑它(是否会令人困惑)。它确实是,它似乎。已修复,谢谢!
      猜你喜欢
      • 2017-08-02
      • 2018-02-11
      • 1970-01-01
      • 2022-01-19
      • 2015-07-14
      • 2016-11-23
      • 2014-01-07
      • 2016-07-07
      相关资源
      最近更新 更多