从StringBuilder中删除最后一行而不知道字符数

Loc*_*ero 3 java stringbuilder

我想知道是否存在一个简单的方法从StringBuilder对象中删除最后一行而不知道最后一行中的字符数.

例:

你好,你好吗?
很好,谢谢!
好的,完美......

我想删除"Ok,Perfect ......"

eri*_*cbn 10

StringBuilder sb = new StringBuilder("Hello, how are you?\nFine thanks!\nOk, Perfect...");

int last = sb.lastIndexOf("\n");
if (last >= 0) { sb.delete(last, sb.length()); }
Run Code Online (Sandbox Code Playgroud)

http://ideone.com/9k8Tcj

编辑:如果你想删除最后一个非空行吗

StringBuilder sb = new StringBuilder(
        "Hello, how are you?\nFine thanks!\nOk, Perfect...\n\n");
if (sb.length() > 0) {
    int last, prev = sb.length() - 1;
    while ((last = sb.lastIndexOf("\n", prev)) == prev) { prev = last - 1; }
    if (last >= 0) { sb.delete(last, sb.length()); }
}
Run Code Online (Sandbox Code Playgroud)

http://ideone.com/AlzQe0

  • @Hiru,我想说在这种情况下最后一行是空的! (3认同)
  • StringBuilder sb = new StringBuilder("你好,你好吗?\n非常感谢!\nOk,Perfect ... \n"); 那这个呢? (2认同)