200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > java 十六进制数组转字符串_Java通用将字节数组转换为字符串(非十六进制 十进制)...

java 十六进制数组转字符串_Java通用将字节数组转换为字符串(非十六进制 十进制)...

时间:2018-11-08 02:40:43

相关推荐

java 十六进制数组转字符串_Java通用将字节数组转换为字符串(非十六进制 十进制)...

将字节数组转换为具有选择基数的字符串的最佳方法是什么? S.O上有大量示例.在其他地方转换为十六进制字符串.我主要感兴趣的是将其转换为十六进制或十进制字符串以外的内容;也是更通用的方式

这是我目前正在做的事情:

byte[] input;

String MyStr = new BigInteger(input).toString(radix);

这是可行的,但是由于Java在Integer中使用了基数的概念.这似乎是在Character中定义的明确目的.不应该有一个更好的方法,而不是先将字节数组转换为BigInteger?感觉像我的Java知识错过了一些必不可少的标准课吗?

编辑:

我想将其用于表示(和打印)不同类型的原始二进制数据的压缩方式.这是我当前使用的实际基数:

String MyStr = new BigInteger(data).toString(Character.MAX_RADIX);

MAX_RADIX(36)使用小写字母和数字的组合.这样可以得到不错的压缩效果,但是如果基数可以包含UPPER字母,那就更好了,这就是为什么我认为我可能会丢失一些东西.

解决方法:

您似乎正在寻找Base64编码.它使用64个不同的字符对值进行编码:大写和小写字母(已经有52个字符),数字(还有10个,包括“ 0”)以及“’和’/”符号(或“-”和“网址安全变体中的“ _”).

如果您使用的是Java 8,则有Base64类:

String str = Base64.Encoder.encodeToString(data);

否则,Apache Commons也具有Base64类:

String str = Base64.encodeBase64String(data);

标签:arrays,string,java

来源: https://codeday.me/bug/1120/2045839.html

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。