栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

字节数组到字符串并返回..问题与-127

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

字节数组到字符串并返回..问题与-127

您正在调用的构造函数使得二进制到字符串的转换使用解码:变得很明显

String(byte[] bytes, Charsetcharset)
。您想要的是根本不使用解码。

幸运的是,有一个构造函数:

String(char[] value)

现在,您将数据存储在一个字符串中,但是您希望完全照原样返回它。但猜猜怎么了!

getBytes(Charset charset)

没错,还会自动应用一种编码。幸运的是,有一种
toCharArray()
方法。

如果必须以字节开头并以字节结尾,则必须将char数组映射到字节:

(new String(Array[Byte](1,2,3,-1,-2,-127).map(_.toChar))).toCharArray.map(_.toByte)

因此,总结一下:在之间转换

String
Array[Byte]
涉及编码和解码。如果要将二进制数据放入字符串中,则必须在字符级别进行。但是请注意,这将为您提供一个垃圾字符串(即结果不会像
String
预期的那样形成格式正确的UTF-16
),因此,您最好将其读取为字符并将其转换回字节。

可以
通过增加512来向上移动字节;那么您将获得一堆有效的单个

Char
代码点。但这使用16位来表示每8位,即50%的编码效率。对于串行化二进制数据,base64是更好的选择(8位代表6,效率为75%)。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/437924.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号