java - 从字符列表转换“列表" 到一个字符数组 "char[]"
问题描述
什么是 Java 中从List<Character> list
char 数组转换的方法char[] chars
。
我想要这个,以便以后我可以创建一个String
using String(chars)
. 我们有使用的快捷方式Stream
吗?
我看到我们可以从List<Integer>
(Or Double
and Long
) 转换为int[]
(or double[]
and long[]
),但是类似的功能不可用,char
因为我们没有 char 等价物IntStream
?
请建议我们是否有快速的方法来做到这一点。
我目前的代码是:
new String(getCharArray(charList))
private static char[] getCharArray(List<Character> charList) {
char[] charArray = new char[charList.size()];
for (int i = 0; i < charArray.length; i++) {
charArray[i] = charList.get(i);
}
return charArray;
}
解决方案
TL;博士
你可以这样做(例如):
list.stream().map(Object::toString).collect(Collectors.joining()).toCharArray();
但是,如果您想String
直接使用它:
list.stream().map(Object::toString).collect(Collectors.joining());
详细解答
我看到我们可以从 List (...) 转换,但类似的功能不适用于 char,因为我们没有 IntStream 的 char 等效项?
是的,因为您可以结合内置方法mapToInt
并免费toArray
获得转换。并且同样不适用于 type 。尽管如此,您仍然可以使用通用map,转换为 a ,然后再转换为字符数组:char
String
list.stream().map(Object::toString).collect(Collectors.joining()).toCharArray();
我想要这个,以便稍后我可以使用 String(chars) 创建一个字符串。我们有使用 Stream 的快捷方式吗?
那为什么不直接做呢?!:
String collect = list.stream()
.map(String::valueOf)
.collect(Collectors.joining());
运行示例:
public static void main(String[] args) {
List<Character> list = List.of('H', 'e','l','l','o');
String collect = list.stream().map(String::valueOf).collect(Collectors.joining());
System.out.println(collect);
}
输出
Hello
推荐阅读
- python - ModuleNotFoundError:没有名为“sklearn.svm._classes”的模块
- python - 如何在 graphene-django GraphQLTestCase 中使用 django-grahql-jwt 进行身份验证?
- .net-core - 根据 .Net Core 3.1 中的特定规则修改每个响应
- python - 如何将事件生成应用于多个条目
- node.js - 如何使用 NodeJS 和 Google Drive API v3 将文件移动到垃圾箱
- html - 内容重叠固定导航栏
- qt - 如何用 Column 锚定 TableView?
- javascript - 从包含 Javascript 路径的对象列表中创建树
- amazon-web-services - Amazon SES 自定义 MAIL FROM 域未在内部发送电子邮件
- c - 使用define宏在C中初始化结构对象