提供以下代码。
String myString = "Hello World";
myString.toLowerCase();
System.out.println(myString);
我的问题是关于打印结果不是“hello world”的原因
是因为第二行真的没有做任何事吗? 是否正确的语法(给定第一行):
System.out.println(myString.toLowerCase);
答案 0 :(得分:2)
字符串在java中是不可变的
myString =myString.toLowerCase();
你必须通过分配来取回结果。
String myString = "Hello World"; // your String
myString.toLowerCase(); // returning new String
System.out.println(myString); // Still your old String
所以,
myString =myString.toLowerCase();// myString is now returned value.
答案 1 :(得分:1)
String
在Java中是不可变的。这就是您需要将toLowerCase()
方法返回的更改值重新分配回myString
变量的原因。
String myString = "Hello World";
myString = myString.toLowerCase(); // re-assigning the changed value to myString
System.out.println(myString); // printing the new value
答案 2 :(得分:0)
将您的代码更改为以下以获得预期的结果
String myString = "Hello World";
myString=myString.toLowerCase();
System.out.println(myString);
toLowerCase()
的返回类型为String
,其中包含小写String
。你应该从该方法中获取返回结果。因为String是不可变的,myString.toLowerCase()
将返回一个小写的新String。
答案 3 :(得分:0)
试试这个
System.out.println(myString.toLowerCase());
String.toLowerCase()返回小写字符串,它不会更改参数
答案 4 :(得分:0)
String
变量为immutable
,即您无法更改对象本身,但您可以更改参考资料。
尝试这种方式,它将打印新分配的值
String myString = "Hello World";
myString = myString.toLowerCase();
System.out.println(myString);
答案 5 :(得分:0)
由于String
在Java中是不可变的,myString.toLowerCase()
不会更改myString
中的任何内容,只会返回new String
,其中所有字符均为myString
已转换使用默认语言环境的规则来小写。如果你明确地将它分配给引用变量,如下所示,它将引用“hello world”对象。
myString = myString.toLowerCase();
答案 6 :(得分:0)
在Java中,java.lang.String是一个不可变对象(一旦创建就无法更改)
尝试这种方式
String myString = "Hello World";
myString = myString.toLowerCase();
System.out.println(myString);