在Java中修剪字符串的正确方法


问题内容

在Java中,我这样做是为了修剪字符串:

String input = " some Thing ";
System.out.println("before->>"+input+"<<-");
input = input.trim();
System.out.println("after->>"+input+"<<-");

输出为:

before->> some Thing <<-
after->>some Thing<<-

作品。但是我想知道是否通过给自己分配一个变量来做正确的事情。我不想通过创建另一个变量并将调整后的值分配给它来浪费资源。我想就地进行修剪。

那我这样做对吗?


问题答案:

您做对了。从文档中

字符串是常量;它们的值创建后无法更改。字符串缓冲区支持可变字符串。由于String对象是不可变的,因此可以共享它们。

同样从文档中

修剪

公共字符串trim()

返回字符串的副本,省略前导和尾随空格。如果此String对象表示一个空字符序列,或者此String对象表示的字符序列的第一个和最后一个字符都具有大于’\
u0020’的代码(空格字符),则返回对此String对象的引用。

否则,如果字符串中不存在代码大于’\ u0020’的字符,则将创建并返回一个代表空字符串的新String对象。

否则,令k为代码中大于“ \ u0020”的字符串中第一个字符的索引,而m为代码中大于“ \
u0020”的字符串中最后一个字符的索引。创建一个新的String对象,该对象表示此字符串的子字符串,该子字符串以索引k处的字符开始,以索引m处的字符结束,即this.substring(k,m
+ 1)的结果。

此方法可用于从字符串的开头和结尾修剪空格(如上定义)。

返回值

除去前导和尾随空白的此字符串的副本;如果没有前导或尾随空白,则此字符串的副本。