作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在API文档中搜索了deleteCharAt
方法。该方法的返回类型是StringBuilder
。所以我认为需要引用变量来赋予引用值(value)。
例如,我认为 sbuf=sbuf.deleteCharAt(0);
是比 sbuf.deleteCharAt(0);
更好的表达方式。
但是,在许多书籍和代码上,都使用后者。
我的想法中错误的部分是什么?
最佳答案
StringBuilder 对象是可变的;一旦调用操作.deleteCharAt()
,引用sbuf
仍然是同一个对象,并且该对象的内部状态已经改变。因此,您可以以 sbuf.deleteCharAt(0);
的形式调用该方法。
例如,字符串是不可变的。例如,当您调用 .substring()
方法时,它会返回对 string 类的全新实例的引用。因此,如果您编写 str.substring(5);
,则返回值将被丢弃,而 str
仍将具有旧值。相反,对于不可变对象(immutable对象),您需要编写类似 newStr = str.substring(5);
的内容。
关于java - 我想问一下deleteCharAt方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31259302/
我是一名优秀的程序员,十分优秀!