当前位置: 首页 > 面试题库 >

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

夹谷英奕
2023-03-14
问题内容

在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)的结果。

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

返回值

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



 类似资料:
  • 问题内容: JDK的String.trim()方法非常幼稚,仅删除ascii控制字符。 Apache Commons的StringUtils.strip()稍好一些,但使用了JDK的Character.isWhitespace(),后者无法将不间断的空格识别为whitespace。 那么,用Java修剪字符串的最完整,与Unicode兼容,安全和正确的方法是什么? 顺便说一句,有没有比我应该使用的

  • 问题内容: 如何修剪JavaScript中的字符串? 问题答案: 自IE9 +起,所有浏览器都具有字符串方法。 对于不支持的浏览器,可以使用MDN中的以下polyfill : 也就是说,如果使用,也可以使用,并且可以处理undefined / null。 看到这个:

  • 问题内容: 下面程序的输出: 是: 然而 如何从字符串的开头和结尾删除换行符(Java)? 否则说。 我想念什么? 问题答案: 既然是一成不变的 不会更改基础值,它会返回一个没有开头和结尾空格字符的新值。您需要替换参考

  • 问题内容: 如何修剪Java中的字符? 例如 j 应该是 “乔\吉尔” j 应该是 “ \ joe \ jill \” 等等 问题答案: Apache Commons 有一个很棒的StringUtils类(org.apache.commons.lang.StringUtils)。其中有一种方法可以满足您的需求。 我强烈建议无论如何都要使用Apache Commons,尤其是Collections和

  • 问题内容: Java字符串修剪不会为我删除空格字符。 输出为。请注意1右边的空间。 我必须从字符串中删除尾随空格,但既不要也不删除它。 无论哪种方式,字符串都保持相同。 编辑:完整代码 :: 为什么我不能删除那个空间? 问题答案: 该网站的源代码显示特殊的html字符。尝试在您的java字符串中搜索或替换以下内容:。 那是一个不可破坏的空间。请参阅:我有一个带有“ \ u00a0”的字符串,我需要

  • 问题内容: 与该方法等效的 JavaScript 是什么: C#仅在字符串的 开头 和 结尾 处修剪所选字符! 问题答案: 一行就足够了: 在功能上: