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

如何删除StringBuilder中语句的最后一个单词?代码问题求解

解决StringBuilder移除最后一个单词的问题

原代码的问题

你当前的代码里,builder.substring(0,builder.lastIndexOf(" ")-1) 存在两个关键问题:

  • substring() 方法不会修改原StringBuilder对象,它仅返回新字符串,所以你的builder内容根本没发生变化;
  • lastIndexOf(" ")-1 的计算逻辑错误,会多删除一个字符,导致结果不符合预期。

正确实现方式

要移除最后一个单词(这里是"AND"),可以利用StringBuilder的delete()方法直接修改原对象,代码如下:

// 找到最后一个空格的索引位置
int lastSpacePos = builder.lastIndexOf(" ");
if (lastSpacePos != -1) {
    // 从最后一个空格的位置开始,删除到字符串末尾
    builder.delete(lastSpacePos, builder.length());
}

针对特殊场景的优化(可选)

如果你的代码中可能出现末尾有多个空格的情况(比如原append语句最后有" and "两个空格),可以先清理末尾空格再执行删除:

// 先移除末尾的所有空格
while (builder.length() > 0 && Character.isWhitespace(builder.charAt(builder.length() - 1))) {
    builder.setLength(builder.length() - 1);
}
// 再删除最后一个单词
int lastSpacePos = builder.lastIndexOf(" ");
if (lastSpacePos != -1) {
    builder.delete(lastSpacePos, builder.length());
}

这样处理后,不管末尾有没有多余空格,都能准确移除最后一个单词。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 23:55:12