java - 将 Stringbuffer 转换为 String() 后调用 String subSequence()

标签 java string stringbuilder

我在现有的 Java 程序代码中发现了以下片段:

StringBuffer b = new Stringbuffer()
// fill the StringBuffer
(...)

String temp = b.toString();
return temp.subSequence(0, b.toString().length() - 1);

我不明白他们为什么要从位置 0 到结尾做一个 subSequence...
StringBuilder转String后的格式有那么难看吗?

他们,他们写的这段代码已经不在我公司了,所以我不能问他们...

希望大家能帮帮我。

最佳答案

想法是从末尾去掉一个字符,注意所有 Java 标准库类都遵循关于开始/结束索引参数的约定,星号包含在内,结尾不包含在内。我也同意代码很丑,应该是

...
return b.subSequence(0, b.length() - 1);

它更短,也更高效。 StringBuffer 也是一个遗留类,您可以用更快的 StringBuilder 替换它

关于java - 将 Stringbuffer 转换为 String() 后调用 String subSequence(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18143190/

相关文章:

java - 如何根据程序运行时生成URL?

java - Spring 3.2 @ResponseBody 不使用模型返回值

java - JSF 和库的不明确性

java - 如何在调用自身的方法中使用 ArrayList

string - 一行将键值对字符串转换为HashMap

通过指针更改 C 中的字符串文字?

c - 我的函数应该复制 `char*` 参数吗?

c# - StringBuilder 与 StringWriter/StringReader

java - java中有没有类似于StringBuilder的类,唯一的区别就是它的长度是固定的?

java - 处理 controlP5 使用过多内存