gpt4 book ai didi

java - 删除 Java 字符串中的最后 n 行(句子)

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:46:49 25 4
gpt4 key购买 nike

我正在寻找一种从字符串中删除最后 n 行的有效方法。高效、快速的执行以及不会创建太多对象的东西。因此想远离 split()。特别是因为有时我的字符串可能有几百甚至几千行。

例如,我得到一个这样的字符串:

This is a sample code line 1.
This is a sample code line 2.

Warm Regards,
SomeUser.

最后 3 行(空行、“Warm Regards”和“SomeUser.”)是我要删除的内容。请注意,内容(包括最后 3 行)不是固定的。

我正在考虑首先使用这里的解决方案计算行数:https://stackoverflow.com/a/18816371/1353174然后再次使用另一个类似的循环到达 lines - n 的位置并执行子字符串直到该位置。

但是,只需在此处发布此问题即可了解是否有任何其他可能更有效的方法来实现此目的。也欢迎基于外部库的解决方案(如 Apache Commons StringUtils)。

最佳答案

您可以使用 String.lastIndexOf 查找最后三次出现的 '\n' 符号,然后执行 String.substring 以获得结果。

     public static void main(String[] args) {
String s = "This is a sample code line 1.\n" +
"This is a sample code line 2.\n" +
"\n" +
"Warm Regards,\n" +
"SomeUser.";

int truncateIndex = s.length();

for (int i = 0; i < 3; i++) {
System.out.println(truncateIndex);
truncateIndex = s.lastIndexOf('\n', truncateIndex - 1);
}

System.out.println(s.substring(0, truncateIndex));
System.out.println("--");
}

此代码片段有意不关心极端情况,例如当输入字符串中少于三行时,以使代码简单易读。

关于java - 删除 Java 字符串中的最后 n 行(句子),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26002507/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com