因为String和 StringBuilder (或 StringBuffer )是为了不同的目的而设计的,我可以理解一半差异的原因(例如 String 没有 append
和 delete
)。然而,有几点仍然让我困惑。
仅举几例:
- String 同时具有
getBytes
和getChars
,但 StringBuilder 只有getChars
。 - String 和 StringBuilder 分别具有不同功能的
replace
。 - String 有
toLowerCase
和toUpperCase
,而 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/