Java:切断字符串末尾的更简单方法

BAE*_*RUS 4 java substring

每次我遇到这个问题时,我都会问自己同样的问题:是否有一种更简单且不那么烦人的方法可以将字符串从末尾剪下 X 个字符。

假设我得到了"Helly there bla bla"- 为什么 - 我需要切断最后 2 个字符,导致"Helly there bla b". 我现在会做以下事情:

String result = text.substring(0, text.length() - 2);
Run Code Online (Sandbox Code Playgroud)

我宁愿做这样的事情:

String result = text.cutOffEnd(2);
Run Code Online (Sandbox Code Playgroud)

我知道那里有很多 String 库,但不知道其中很多,而且我从未见过类似的东西,所以我希望你们中的某个人可能更了解 :)

编辑:

问:为什么不构建自己的 util 方法/类?

A:我不想使用自己的 util 方法。我不会为“空或空”或其他琐碎的事情编写 util 方法。我认为必须已经有一些可用的东西,因为我会说很多人在他们的一生中经常需要这种功能。另外:我在许多不同的项目中工作,只是想依赖一个简单的库调用,比如“Strings.nullToEmpty(str)”等。我只是不会自己构建类似的东西,尽管它很简单。

问:为什么text.substring(0, text.length() - 2);不够好?

A:和我想要的功能比起来就很笨重了。另外,请想一想:如果您确定字符串,它会变得更加不方便:

String result = otherClass.getComplicatedCalculatedText(par1, par2).substring(0,
otherClass.getComplicatedCalculatedText(par1, par2).length() - 2);
Run Code Online (Sandbox Code Playgroud)

显然我需要使用一个局部变量,这在这一点上是不必要的......因为它可能只是:

String result = otherClass.getComplicatedCalculatedText(par1, par2).cutOffEnd(2);
Run Code Online (Sandbox Code Playgroud)

小智 5

通过使用一些字符串库。我建议使用 Apache 的公共语言。

对于你的情况,这就足够了。

import org.apache.commons.lang.StringUtils;
String result = StringUtils.removeEnd( "Helly there bla bla", "la");
Run Code Online (Sandbox Code Playgroud)