我学会了string.trim()
删除前导和尾随空格。但在我的情况下,它不起作用我正在尝试下面的代码,但输出带有前导和尾随空格。但我的期望是没有前导和尾随空格的文本。这是我的代码。
String s = " Hello Rais ";
s += " Welcome to my World ";
s.trim( );
System.out.println(s);
请帮我
您需要将返回的结果重新分配trim
给s
:
s = s.trim();
请记住,Java 中的字符串是不可变的,因此几乎所有 String 类方法都会创建并返回一个新字符串,而不是就地修改字符串。
虽然这是题外话,但是(正如我在那里所说almost
),值得知道的是,这个规则的例外是在创建substring
相同长度的时候,或者任何时候方法返回具有相同值的字符串,这将被优化和不会创建一个新字符串,而只是简单地 return this
。
String s = "Rohit";
String s2 = s.substring(0, s.length());
System.out.println(s == s2); // will print true
在 Java 中,字符串是immutable
. 所以s.trim()
不修改原始字符串而是返回一个新字符串。
String trimmed = s.trim();
只需添加s=s.trim( );
,因为 trim 返回一个新字符串。
嗯..string 是不可变的对象。因此,每当您执行 trim() 时,它都会创建一个全新的 String 对象,该对象需要引用才能访问它。因此,请按如下方式为这个修剪过的 String 对象分配一个引用。
s = s.trim();
或者
trimmedS = s.trim();
了解String
在 Java 中是不可变的。这意味着对String
类的任何操作都不会更改内部字符串本身,而是返回一个新String
对象。
所以你真的需要做
s = s.trim()
它将引用分配给删除了尾随和前导空格s
的新对象。String
trim
函数通过修剪空格返回原始字符串的副本,因此您需要存储新返回的字符串,例如s = s.trim()
trim
public String trim()
Returns a copy of the string, with leading and trailing whitespace omitted.