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

如何移除单词中的非字母内容?现有代码误删完整单词"Have"

问题分析与解决方案

你的代码问题出在多次split后仅取第一个元素:比如处理"Have时,用split("\"")会分割成["", "Have"],你取parts5[0]就拿到了空字符串,自然输出空。这种多次拆分的方式既繁琐,又容易因为符号位置丢失有效内容。

直接用正则替换就能一步解决,不需要多次split:

while(tokenizer.hasMoreTokens()){
    String currentWord = tokenizer.nextToken();
    // 移除所有非字母字符,仅保留大小写字母
    String cleanedWord = currentWord.replaceAll("[^a-zA-Z]", "");
    System.out.println(cleanedWord);
}

说明

  • [^a-zA-Z]是正则否定字符类,匹配任何不是大小写字母的字符(包括引号、逗号、问号、点号等)
  • replaceAll会把所有匹配到的非字母字符替换为空字符串,直接得到纯字母的单词
  • 比如输入"Have会输出Have,输入Hello,会输出Hello,完全符合你删除非字母部分的需求

如果需要保留特定非字母字符(比如缩写里的单引号'),只需调整正则为[^a-zA-Z']即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 14:50:21