我想知道反正有可能通过流API进行转换
List<Integer> li = Arrays.asList(1,2,3,45,678);
到char[]
ch而不进入String
的中间阶段?我找不到一个。
答案 0 :(得分:4)
可能是一种遍历列表并将值分配给数组中各个索引的方法,如下所示:
IntStream.range(0, li.size())
.forEach(i -> ch[i] = (char) li.get(i).intValue());
或者如果不是必须的原语,则类似于:
Character[] ch = li.stream()
.map(i -> (char) i.intValue())
.toArray(Character[]::new);
答案 1 :(得分:0)
我认为最简单的方法是声明一个字符数组,并通过for循环和toArray()函数将列表数组保存在char数组中。
答案 2 :(得分:0)
我实现了解决方案,但是我必须进行一次中间String
转换。
List<Integer> li = Arrays.asList(1,2,3,45,678);
String Str =li.toString();
char [] ch = new char[Str.length()];
for(int i=0;i<Str.length();i++)
{
ch[i] = Str.charAt(i);
}
for(char cc:ch)
{
System.out.print(cc);
}
输出:[1、2、3、45、678]