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

为何Java的stream()处理分割字符串会生成Object数组?如何获取String数组?

如何将字符串转换为String类型数组

针对你的需求,这里提供两种直接获取String[]的方法:

方法一:直接使用split方法

String.split()方法本身就会返回String[]类型的数组,不需要额外通过Stream处理,最简单直接:

String input = "Aaaa Bbbb Cccc";
String[] stringArray = input.split(" ");
// 验证类型和内容
System.out.println(stringArray.getClass()); // 输出 class [Ljava.lang.String;
System.out.println(Arrays.toString(stringArray)); // 输出 [Aaaa, Bbbb, Cccc]

方法二:通过Stream生成指定类型数组

如果需要在Stream中做额外操作(比如过滤、转换),则需要在toArray()方法中指定数组类型的生成器,而不是用无参的toArray()(无参版本默认返回Object[]):

String input = "Aaaa Bbbb Cccc";
String[] stringArrayFromStream = Arrays.stream(input.split(" "))
                                        // 可在此添加Stream操作,比如 .filter(s -> !s.isEmpty())
                                        .toArray(String[]::new);
// 验证类型
System.out.println(stringArrayFromStream.getClass()); // 输出 class [Ljava.lang.String;

为什么之前得到Object类型数组?

无参的Stream.toArray()方法无法推断你需要的具体数组类型,所以默认生成Object[]。而toArray(String[]::new)通过方法引用明确告诉Stream要创建String[]类型的数组,就能得到你想要的结果。

内容的提问来源于stack exchange,提问作者Lázaro Damasceno

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 12:40:35