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

Java中如何从字符串提取单词并转换为小写?

解决字符串拆分后转小写的问题

嘿,这个坑我之前踩过!你直接在split("\\s+")结果上调用toLowerCase()无效,核心原因是:split()返回的是String数组,而Java的数组并没有toLowerCase()方法——这个方法是单个String对象的成员方法,只能作用于单个字符串。

下面给你两种更优的实现方式,比遍历数组逐个转换更简洁高效:

方案一:先转全小写再拆分(推荐,性能更优)

如果你的需求只是把所有提取到的单词转成小写,最直接高效的方式是先把整个输入字符串转成小写,再执行拆分操作。这样只需要一次字符串转换,避免了遍历数组的额外开销:

String[] arrayOfWords = aNovelInAString.toLowerCase().split("\\s+");

注意:如果输入字符串首尾有空格,拆分后可能会出现空字符串,你可以用split("\\s+", 0)来自动忽略末尾的空元素,或者之后手动过滤。

方案二:用Stream API函数式处理(灵活扩展)

如果之后还需要对拆分后的单词做其他操作(比如过滤、映射等),用Java 8+的Stream API会更优雅,可读性也更强:

import java.util.Arrays;

// ...

String[] arrayOfWords = Arrays.stream(aNovelInAString.split("\\s+"))
                              .map(String::toLowerCase) // 逐个转小写
                              .filter(s -> !s.isEmpty()) // 可选:过滤空字符串
                              .toArray(String[]::new);

这种方式把数组转成流后,通过map操作统一处理每个字符串,最后再转回数组,代码逻辑清晰,扩展性好。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:32:17