有什么方法可以将Java转换String为byte[](
而不是盒装Byte[]
)?
在尝试这个:
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
第二个是地址。我做错了什么吗?我需要将结果byte[]送入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 buf[] = new byte[1024];
while (res >= 0) {
res = gzin.read(buf, 0, buf.length);
if (res > 0) {
byteout.write(buf, 0, res);
}
}
byte uncompressed[] = byteout.toByteArray();
return (uncompressed.toString());
}
你的方法decompressGZIP()
需要的对象是byte[]
。
因此,对你提出的问题的基本技术回答是:
byte[] b = string.getBytes();
byte[] b = string.getBytes(Charset.forName("UTF-8"));
byte[] b = string.getBytes(StandardCharsets.UTF_8); // Java 7+ only
但是,你似乎在努力解决的问题是,它显示得不是很好。调用toString()只会为你提供默认Object.toString()
名称,即类名+
内存地址。在你的结果中[B@38ee9f13
,[B
均值byte[]
和38ee9f13
是内存地址,以分隔@
。
为了显示目的,你可以使用:
Arrays.toString(bytes);
但这只会显示为逗号分隔的整数序列,可能不是你想要的整数。
为了得到一个可读的String
从背面byte[]
,使用方法:
String string = new String(byte[] bytes, Charset charset);
支持该Charset版本的原因是StringJava
中的所有对象在内部都存储为UTF-16。转换为a时byte[],对于给定的字形,你将获得不同的字节细分String,具体取决于所选的字符集。
问题内容: 我有一个,我需要一个。如何从一个转换为另一个? 问题答案: 好问题。我有以下五种 6种方法可以做到这一点。 注意:返回。因此有效地两者是相同的。 调用,这又设置了数组。 另一方面,调用以下程序包私有构造函数。 从源代码中的Java 8的源代码 因此似乎是最有效的方法,在这两个存储器和速度方面,用于转换char到String。
有没有办法将Java转换为(而不是装箱的)? 在尝试此过程中: 我得到了不同的输出。无法显示第一个输出,因为它是gzip字符串。 第二个是地址。我做错什么了吗?我需要一个中的结果来将其馈送到gzip解压缩器,如下所示。
问题内容: 我发现了有关从java字符串获取java.util.streams.IntStream的问题,但是由于我使用的是Java 8,所以我没有找到此方法。 更正:正如你们指出的那样,我正在使用Java7。现在该方法就在那里。但问题仍然适用: 如何从字符串中获取a ? 问题答案: 我会指出较早的关于这个主题的答案,但是事实证明您已经与这个问题联系了。在对方的回答也提供了有用的信息。 如果需要值
问题内容: 如何使用JavaScript转换字节数组中的字符串。输出应等效于以下C#代码。 由于UnicodeEncoding默认为具有Little-Endianness的UTF-16。 编辑: 我需要使用上面的C#代码将字节数组生成的客户端与服务器端生成的字节数组进行匹配。 问题答案: 在C#中运行 将创建一个数组 对于代码大于255的字符,它将如下所示 如果您希望在JavaScript中实现非
问题内容: 我正在阅读有关python的新f字符串的 博客 ,它们看起来很整洁。但是,我希望能够从字符串或文件中加载f字符串。 我似乎找不到任何执行此操作的字符串方法或其他函数。 从上面我的链接中的示例: 但是,如果我有琴弦怎么办?我希望能够像这样: 事实证明,我已经可以执行类似的操作并获得性能提高。即: 问题答案: f字符串是代码。不仅以安全的方式(当然,字符串文字就是代码),而且以危险的任意代
问题内容: 我想遍历每个单独的ArrayList。我不知道如何将字符串转换为适当的ArrayList对象。 问题答案: 这种语法看起来像是JSON的子集,我猜想客户端实际上是将其编码为JSON。假设这是真的,最简单的方法将是使用现成的JSON解析器和一些简单的Java代码将结果对象转换为代码所需的形式。 当然,您可以手动实现自己的解析器,但是这样做可能不值得,尤其是如果您必须处理字符串转义,空格中