Java 8流:将IntStream转换为String

问题描述

您可以使用toArray(),然后使用String(int[], int, int)构造函数。正如chars()返回UTF-16代码单元所指定的那样,这并不完全令人满意,基本上是:

返回此序列的int零扩展char值的流。映射到代理代码点的任何字符都将通过未解释传递。

使用codePoints()反而会更加保持与此构造,其预计的代码点,而不是UTF-16代码单元。否则(带有chars),如果您的原始字符串确实 包含代理对,则您可能会发现错误-我没有尝试过,但这是有道理的。

我不知道没有先转换为数组的简单方法

解决方法

在Java 8流API中,调用chars()任何String对象都会返回一个IntStream包含所有字符的对象。

将返回的IntStream对象转换回a
的正确方法是String什么?调用toArray()会给我一个int[],任何String构造函数都不接受。

猜你在找的技术问答相关文章

如何检查配对的蓝牙设备是打印机还是扫描仪(Android)
是否允许实体正文进行HTTP DELETE请求?
如何将ZipInputStream转换为InputStream?
java.util.logging Java 8中的变量
PowerMockito.doReturn返回null
Java中的RESTful调用
Swing / Java:如何正确使用getText和setText字符串
特殊字符和重音字符
Android Studio中的ndk.dir错误
错误“找不到主类”