【发布时间】:2014-11-30 15:52:49
【问题描述】:
每当我遇到这种情况时,我都会问自己同样的问题:难道没有一种更简单、更不烦人的方法来将字符串从结尾处截取 X 个字符吗?
假设我得到了 "Helly there bla bla" 并且 - 为什么 - 我需要截掉最后 2 个字符,从而得到 "Helly there bla b"。
我现在将执行以下操作:
String result = text.substring(0, text.length() - 2);
我宁愿做这样的事情:
String result = text.cutOffEnd(2);
我知道那里有很多 String 库,但不知道其中很多,而且我从未见过类似的东西,所以我希望你们中的某个人可能知道得更好:)
编辑:
问:为什么不直接构建自己的 util 方法/类?
答:我不想使用自己的 util 方法。我不会为“null 或 empty”或其他琐碎的事情编写 util 方法。我认为必须有一些可用的东西,因为我会说很多人在他们的一生中经常需要这种功能。 另外:我在许多不同的项目中工作,只想依赖一个简单的库调用,如“Strings.nullToEmpty(str)”等。我只是不自己构建类似的东西,尽管它很微不足道。
问:为什么text.substring(0, text.length() - 2);不够好?
答:如果您将它与我想要的功能进行比较,它会非常笨重。另外,请考虑一下:如果您确定字符串,它会变得更加笨拙:
String result = otherClass.getComplicatedCalculatedText(par1, par2).substring(0,
otherClass.getComplicatedCalculatedText(par1, par2).length() - 2);
显然我需要使用一个局部变量,在这一点上这是不必要的......因为它可能只是:
String result = otherClass.getComplicatedCalculatedText(par1, par2).cutOffEnd(2);
【问题讨论】:
-
text.substring(text.length() - 2)会返回最后 2 个字符并且不切断最后 2 个字符! -
只需创建自己的字符串实用程序类
-
感谢 icza,一秒钟前也意识到了这一点。使代码更加庞大。我编辑了问题。