好问题
Good  Question
  • 首 页
  • 问题
    • PHP
    • JAVA
    • CPlusPlus
    • C#
    • SQL
  • 关 于
  • 联 系
如何将java字符串转换成字节数组? 关闭 返回上一级  

如何将java字符串转换成字节数组?
+ 查看更多

发布日期:2018-03-23 17:19
分类:JAVA
浏览次数:147
有什么办法可以把java字符串转换成字节数组(不是盒装字节[])?
在尝试这个:
System.out.println(response.split("\r\n\r\n")[1]);
System.out.println("******");
System.out.println(response.split("\r\n\r\n")[1].getBytes().toString());
我得到单独的输出。无法显示第一个输出是gzip的字符串。
<A Gzip String>
******
[B@38ee9f13

二是地址。我做错什么了吗?我需要一个字节数组的结果来给gzip解压缩,如下。
String decompressGZIP(byte[] gzip) throws IOException {
    java.util.zip.Inflater inf = new java.util.zip.Inflater();
    java.io.ByteArrayInputStream bytein = new java.io.ByteArrayInputStream(gzip);
    java.util.zip.GZIPInputStream gzin = new java.util.zip.GZIPInputStream(bytein);
    java.io.ByteArrayOutputStream byteout = new java.io.ByteArrayOutputStream();
    int res = 0;
    byte bu
回答
你的方法decompressgzip()需要的对象是一个字节数组。
因此你问的问题的基本的,技术性的答案是:
byte[] b = string.getBytes();
byte[] b = string.getBytes(Charset.forName("UTF-8"));
byte[] b = string.getBytes(StandardCharsets.UTF_8); // Java 7+ onl
然而,你失败的问题似乎是,这并不显示非常好。调用tostring()方法只会给你默认Object.toString()。tostring()这类名+内存地址。在你的结果[ b 38ee9f13,B表示字节的[ [ ]和38ee9f13是内存地址,由分离。
用于显示用途,您可以使用:
Arrays.toString(bytes);
但这只会显示为逗号分隔整数的序列,这可能或可能不是你想要的。
要从字节中获取可读字符串数组,使用:
String string = new String(byte[] bytes, Charset charset);
因为该字符集的版本是被支持的,java中的所有字符串对象内部存储为UTF-16。当转换成byte []你会得到一个不同的击穿字节为给定字符串的符号,这取决于所选择的字符集。
上一篇从字符串中删除HTML标签
在Java中实现常量的最好方法是什么?下一篇
下一篇在Java中实现常量的最好方法是什么?

最新文章

  • 函数`__construct`用来干嘛的
    发布日期:2018-03-26
  • 通过访客的IP得到他们的地区
    发布日期:2018-03-26
  • 合并两个PHP对象的最好的方法是什么?
    发布日期:2018-03-26
  • 该如何把一该如何把一个对象转化成数组?
    发布日期:2018-03-26
  • 什么是输出缓冲区?
    发布日期:2018-03-26
  • 在PHP中怎么把用逗号分隔的字符串分隔在一个数组里?
    发布日期:2018-03-26
  • 在PHP中使用foreach循环时查找数组的最后一个元素
    发布日期:2018-03-26
关于好问
收集整理一些有用的问题和回答,造福中国的程序旺和IT喵们!
友情链接
起飞页 
相关信息
版权声明
Copyright © 2016 - 2022  苏州卡达网络科技有限公司 备案号:苏ICP备09008221号