2

原谅我,我是 Java 新手,有一个非常基本的问题。我有一个字符串并想要它的子字符串,例如:

String str = "hello";
str.substring(1);
System.out.println(str);

而不是让"ello"我得到原件"hello",知道为什么会这样吗?谢谢。

4

5 回答 5

12

Java 中的字符串是不可变的。我相信你想这样做:

String str = "hello";
str = str.substring(1);
System.out.println(str);
于 2012-06-21T01:32:15.843 回答
8

字符串不能在 Java 中更改,因此您需要重新分配子字符串:

str = str.substring(1)

而不是自己调用方法。

于 2012-06-21T01:33:36.000 回答
3

您没有保存对字符串所做的更改。

str=str.substring(1);
于 2012-06-21T01:32:18.607 回答
1

您需要将子字符串保存到一个新变量中(如果您愿意,也可以是旧变量)。这样的事情应该可以解决问题:

String str = "hello";
String strSub = str.substring(1);
System.out.println(strSub);

对于阅读这篇文章的人,请记住 substring(1) 表示从 char 1 开始获取子字符串,一直到字符串的末尾。

于 2012-06-21T01:33:41.177 回答
1

可以直接放在.println(..)

String str = "hello";
System.out.println(str.substring(1));

str将保持不变。

于 2012-06-21T06:23:44.363 回答