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

如何在Java中移除字符串倒数第六个单词,求优雅或单行实现方案

Java字符串移除指定字段方案

需求说明

我有如下几个字符串:

String str1 = "Car honda3454 is unknown in the system";
String str2 = "Car BMW4545 is unknown in the system";
String str3 = "New Car Audi9898 is unknown in the system";
String str4 = "Very old car mitsubishi4099 is unknown in the system";

需要移除所有字符串的倒数第六个单词,最终得到结果:

Car is unknown in the system
Car is unknown in the system
New Car is unknown in the system
Very old car is unknown in the system

本质是删除字符串中的carXXXX格式字段,求单行或优雅实现方案。

解决方案

方案1:按「删除倒数第6个单词」逻辑实现(通用场景,不依赖car字段)

直接用正则匹配倒数第6个单词替换为空,单行代码即可:

str = str.replaceAll("\\s+\\S+(?=(\\s+\\S+){5}$)", "");

正则逻辑:匹配后面恰好跟随5个单词的非空字符段(即倒数第6个单词)以及其前导空格,直接替换为空,完全匹配要求的删除逻辑。

方案2:按「删除car后带数字的型号字段」逻辑实现(更精准,不受句子结构变化影响)

如果核心需求是删除car(大小写不敏感)后面紧跟的字母+数字组合的型号字段,用这个方案更稳妥,不会因为后续句子单词数变化删错内容:

str = str.replaceAll("(?i)(?<=\\bcar\\s)\\b[a-zA-Z]+\\d+\\b\\s?", "");

正则逻辑:(?i)开启大小写匹配,匹配car单词后面紧跟的由字母+数字组成的独立单词,以及其后面的可选空格,替换为空即可。

两种方案都可以直接调用,一行代码就能完成所有字符串的处理,不需要额外拆分字符串、操作数组的冗余逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 04:42:01