【问题标题】:toUpperCase in Java does not workJava中的toUpperCase不起作用
【发布时间】:2011-12-11 14:45:03
【问题描述】:

我有一个字符串:

String c = "IceCream";

如果我使用toUpperCase() 函数,那么它会返回相同的字符串,但我想得到"ICECREAM"

问题出在哪里?

【问题讨论】:

    标签: java string


    【解决方案1】:

    代码

    String c = "IceCream";
    String upper = c.toUpperCase();
    System.out.println(upper);
    

    正确打印“冰淇淋”。但是,原始字符串 c 没有更改。 Java 中的字符串是immutable,因此对字符串的所有操作都会返回一个新副本。

    【讨论】:

    【解决方案2】:

    您是否期望原始变量 c 已被 toUpperCase() 更改?字符串是不可变的; .toUpperCase() 等方法返回新字符串,保留原字符串不变:

    String c = "IceCream";
    String d = c.toUpperCase();
    System.out.println(c); // prints IceCream
    System.out.println(d); // prints ICECREAM
    

    【讨论】:

      【解决方案3】:

      无法更改对象,因为String 是不可变的。但是,您可以将引用指向一个新实例,该实例全部为大写:

      String c = "IceCream";
      c = c.toUpperCase();
      

      【讨论】:

        【解决方案4】:

        你应该这样使用它:

        String c = "IceCream";
        String upper_c = c.toUpperCase();
        

        【讨论】:

        • 也可以是String c = "IceCream".toUpperCase();
        【解决方案5】:

        这可能是您的语言环境的问题。试试:

        String c = "IceCream";
        return c.toUpperCase(Locale.ENGLISH);
        

        【讨论】:

        • 你救了我的命
        猜你喜欢
        • 2018-10-16
        • 1970-01-01
        • 2020-04-10
        • 1970-01-01
        • 2021-09-21
        • 2020-06-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多