java - 为什么String和StringBuilder/StringBuffer有不同的方法集?

标签 java string stringbuilder stringbuffer

因为StringStringBuilder (或 StringBuffer )是为了不同的目的而设计的,我可以理解一半差异的原因(例如 String 没有 appenddelete)。然而,有几点仍然让我困惑。

仅举几例:

  • String 同时具有 getBytesgetChars,但 StringBuilder 只有 getChars
  • String 和 StringBuilder 分别具有不同功能的replace
  • String 有 toLowerCasetoUpperCase,而 StringBuilder 没有。
  • String 有 trim,而 StringBuilder 没有。

我知道它们是有意设计的,但为什么呢?

最佳答案

String 和 StringBuilder 的设计和实现相隔十多年。 Java 1.0 中的好主意在 Java 5.0 中却被认为不是好主意。

例如Trim() 修剪字符 <= 空格。这包括图形字符,但不是所有空格,例如(char) 160 是一个空格,但未被修剪。

关于java - 为什么String和StringBuilder/StringBuffer有不同的方法集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11397301/

相关文章:

java - 效率问题

Java 报告框架 - 导出为 Excel、PDF 并邮寄

c# - 如何最大化大对象堆中最大的连续内存块

java - 如何倒序获取输入流的内容?

java - 如何捕获这个带有引号的组?

java - java中线程安全的随机访问循环数组?

Java - 从文件中的特定索引中提取相关字符串/字符

java - Intent.getStringExtra ("key")返回 null

c - Scanf for string 无法正常工作

c# - 在类似 StringBuilder 的 C 模块中增加多少缓冲区?