字符串修剪功能不起作用

时间:2013-02-17 07:45:52

标签: java string trim

我了解到string.trim()删除了前导和尾随空格。但在我的情况下它不起作用我尝试下面的代码但输出是前导和尾随空格。但我的期望是没有前导和尾随空间的文本。这是我的代码。

String s = " Hello Rais ";
s += " Welcome to my World ";
s.trim( );
System.out.println(s);

请帮帮我

6 个答案:

答案 0 :(得分:9)

您需要将trim的结果重新分配回s

s = s.trim();

请记住, Java中的字符串是不可变的 ,因此几乎所有String类方法都将创建并返回一个新字符串,而不是修改字符串到位。


虽然这是偏离主题的,但是(正如我所说的那样almost),值得知道的是,此规则的例外是在创建相同长度的substring或任何时候方法时返回具有相同值的字符串,该字符串将被优化并且不会创建新字符串,只需返回this

String s = "Rohit";
String s2 = s.substring(0, s.length());

System.out.println(s == s2); // will print true

答案 1 :(得分:6)

在Java字符串中immutable。因此s.trim()不会修改原始字符串,但会返回一个新字符串。

String trimmed  = s.trim();

答案 2 :(得分:4)

只需添加s=s.trim( );,因为trim会返回新字符串

答案 3 :(得分:3)

Well..string是不可变对象。所以每当你修剪trim()时,它会创建一个全新的String对象,需要有一个访问它的引用。因此,请按如下方式为此修剪的String对象分配引用。

s = s.trim();

trimmedS = s.trim();

答案 4 :(得分:2)

了解Java中的String是不可变的。这意味着String类上的任何操作都不会更改内部字符串本身,但会返回一个新的String对象。

所以你真的需要做

s = s.trim()

将引用s分配给删除了尾随和前导空格的新String对象。

答案 5 :(得分:2)

trim函数通过修剪空格返回原始字符串的副本,因此您需要存储新返回的字符串,如s = s.trim()

来自javadocs of String#trim()

trim

public String trim()
Returns a copy of the string, with leading and trailing whitespace omitted.