我正在寻找一种有效的方法来从字符串中删除最后n行。有效意味着-执行速度快,不会创建太多对象。因此,我希望避免使用split()。特别是因为我的字符串有时可能会有几百甚至几千行。
例如,我得到了这样一个字符串:
我想要删除的是最后3行(一个空行,“诚挚的问候,”和“某用户。”)。请注意,内容(包括最后3行)不是固定的。
我考虑首先使用这里的解决方案计算行数:https://dev59.com/4nE85IYBdhLWcg3wSxcv#18816371,然后再次使用类似的循环到达位置为行数-n并对该位置进行子字符串处理。
但是,我在此发布此问题,以了解是否有其他更有效的方法来实现此目的。也欢迎使用基于外部库的解决方案(如Apache Commons StringUtils)。
例如,我得到了这样一个字符串:
This is a sample code line 1.
This is a sample code line 2.
Warm Regards,
SomeUser.
我想要删除的是最后3行(一个空行,“诚挚的问候,”和“某用户。”)。请注意,内容(包括最后3行)不是固定的。
我考虑首先使用这里的解决方案计算行数:https://dev59.com/4nE85IYBdhLWcg3wSxcv#18816371,然后再次使用类似的循环到达位置为行数-n并对该位置进行子字符串处理。
但是,我在此发布此问题,以了解是否有其他更有效的方法来实现此目的。也欢迎使用基于外部库的解决方案(如Apache Commons StringUtils)。
split
,但是你提供的链接中,最佳答案使用了split
。也许是因为它已经被优化了?在你的程序中使用split
真的会成为瓶颈吗? - AntonH