每次我遇到这种情况,我都会问自己同样的问题:难道没有一种更简单、更不烦人的方法来从字符串末尾截取X个字符吗?
比如说,我有一个字符串 "Helly there bla bla",但是出于某些原因,我需要截掉最后2个字符,得到 "Helly there bla b"。我现在会按照以下步骤操作:
我更想做类似这样的事情:
我知道有很多字符串库存在,但我不熟悉很多,并且从未见过像这样的东西,所以我希望你们中的某个人可能更了解它:)
编辑:
问:为什么不构建自己的util方法/类?
答:我不想使用自己的util方法。 我不会为“null或empty”或其他琐事编写一个util方法。 我认为一定已经有这样的功能可用,因为我认为在他们的生命中,许多人经常需要这种函数。 另外:我在许多不同的项目中工作,只想依赖于一个简单的库调用,例如“Strings.nullToEmpty(str)”等。 尽管这很简单,但我不会自己构建这样的东西。
问:为什么
答:如果与我的所需功能进行比较,则非常笨重。 此外,请考虑以下内容:如果您确定字符串,它甚至变得更加不方便:
比如说,我有一个字符串 "Helly there bla bla",但是出于某些原因,我需要截掉最后2个字符,得到 "Helly there bla b"。我现在会按照以下步骤操作:
String result = text.substring(0, text.length() - 2);
我更想做类似这样的事情:
String result = text.cutOffEnd(2);
我知道有很多字符串库存在,但我不熟悉很多,并且从未见过像这样的东西,所以我希望你们中的某个人可能更了解它:)
编辑:
问:为什么不构建自己的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)
会返回最后两个字符,并且不会截取掉最后两个字符! - icza