繁体   English   中英

Java中的String中的StringBuilder

[英]StringBuilder from String in Java

假设我们有一个StringBuilderStringBuffer如下所示:

StringBuilder s1 = new StringBuilder("xxx");
StringBuffer s2 = new StringBuffer("xxx");

我们可以使用toString()方法从上述变量中​​获取一个String

我知道toString在两个类中都是重写的方法。

还要假设我们有一个如下所示的String

String s3 = "xxx";

我无法使用toStringBuilder()toStringBuffer()获得StringBuilderStringBuffer 相反,我们可以实现的方式如下:

StringBuilder sb = new StringBuilder(s3);

有没有为什么没有定义toStringBuilder() / toStringBuffer()的原因,还有没有其他有效的方法来从String获取StringBuilder / StringBuffer

字符串本身是不可变的 这具有许多优点,尤其是在并发使用,共享子字符串等方面。

类之间的来回耦合也是不好的设计。

toStringObject类的一部分,因此,java的所有类都将具有该方法。 String是不可变的,因此toStringBuildertoStringBuffer都将创建新对象。 我认为,如果有这样的方法,许多用户会误以为使用这些方法,他们可以就地修改字符串。 同样由于相同的原因,不可能有任何更有效的方法来创建StringBuilder / StringBuffer

您可能会要求使用大量String.toFoo()方法,以及在哪里画线? 您可以使用构造函数构造StringBuilderStringBuffer 够了-为什么要添加另一种方法?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM