You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

StringBuilder的deleteCharAt方法不生效?代码未删首字符问题咨询

问题解答

先看你的代码:

String s = "world";
StringBuilder str = new StringBuilder(s);
str.deleteCharAt(0);
System.out.println(s);

你之所以看到输出还是world,核心原因是Java里的String是不可变对象,而StringBuilder是一个独立的可变字符序列对象——你用s初始化str的时候,只是把s的内容复制到了str里,两者根本不是同一个对象!

打个比方:你把一份文档复印了一份,然后在复印件上改内容,原来的文档当然不会有任何变化啦😉

你修改的是str这个StringBuilder对象里的内容,但最后打印的却是原来的String对象s,所以看不到修改效果。

想要看到删除第一个字符后的结果,你有两种办法:

  • 直接打印str对象:System.out.println(str);,这样输出就是orld
  • 把str的内容转回String赋值给s,再打印s:
    s = str.toString();
    System.out.println(s);
    

内容的提问来源于stack exchange,提问作者Heythem

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 07:12:38