在 StringBuilder 中优雅地删除最后一个字符串后面的“\n”分隔符

2022-09-02 05:31:13

有以下Java代码,用“\n”创建,即回车符分隔符:StringBuilder

while (scanner.hasNextLine()){
    sb.append(scanner.nextLine()).append("\n");
}

它发生在最后一个字符串(行)之后有“\n”符号。

如何优雅地从结果对象中删除最后一个“\n”?StringBuilder

谢谢。


答案 1

这一直对我有用

sb.setLength(sb.length() - 1);

操作非常轻量级,保持当前内容大小的内部值将仅减少1。

另外,如果您认为缓冲区可能为空,请在执行此操作之前检查长度值。


答案 2

如果你正在使用足够少的行,你可以把所有的行放在 a 中,然后使用 StringUtils.join(myList, “\n”);List<String>

另一个选项是结果字符串。trim()

发现番石榴整洁的细木工类后更新:

Joiner.on('\n').join(myList)