当前位置: 首页 > 面试题库 >

在java中从字节数组转换为字符串并将字符串转换为字节数组

万俟沛
2023-03-14
问题内容

我有以下代码,我试图通过测试,但似乎无法理解Java世界中各种编码形式。

import java.util.Arrays;

class Test {

static final byte[] A = { (byte)0x11, (byte)0x22, (byte)0x33, (byte)0x44, (byte)0x55, (byte)0x66, (byte)0x77, (byte)0x88, (byte)0x99, (byte)0x00, (byte)0xAA };

public static void main(String[] args) {

    String s = new String(A);

    byte[] b = s.getBytes();

    if (Arrays.equals(A,b)) { 
       System.out.println("TEST PASSED!"); 
    }
    else {
       System.out.println("TEST FAILED!");
    }

}
}

我想我的问题是:将任意字节的字节数组转换为Java字符串,然后将同一Java
String转换为另一个字节数组的正确方法是什么,该字节数组将具有与原始字节相同的长度和相同的内容数组


问题答案:

尝试特定的编码:

String s = new String(A, "ISO-8859-1");

byte[] b = s.getBytes("ISO-8859-1");

ideone链接



 类似资料:
  • 问题内容: 我有一个要加密的字节数组,然后转换为字符串,以便可以传输。当我收到字符串时,我必须将字符串转换回字节数组,以便可以对其进行解密。我检查了接收到的字符串是否与发送的字符串(包括长度)匹配,但是当我使用诸如str.getBytes()之类的东西将其转换为字节数组时,它与我的原始字节数组不匹配。 示例输出: 任何想法如何将接收到的字符串转换为与发送的字节数组匹配的字节数组? 谢谢 问题答案:

  • 问题内容: 假设我有一个4字符串,并且我想将此字符串转换为字节数组,其中字符串中的每个字符都转换为等效的十六进制。例如 我正在尝试让我的输出成为 有没有简单的方法可以做到这一点? 问题答案: 编码功能可以为您提供帮助,编码返回字符串的编码版本 或者你可以使用数组模块

  • 问题内容: 如何将字节数组转换为字符串? 我发现这些功能相反: 但是,如何使功能以其他方式起作用? 谢谢。 o 问题答案: 您需要将每个八位位组解析回数字,并使用该值来获取字符,如下所示: 编辑: 是的,您的当前时间可以写得更短: 但是通过查看您链接的文档,我认为该方法期望blob数组包含十进制数字,而不是 位字符串 ,因此您可以编写如下内容:

  • 问题内容: 我想在GO中将字符串数组转换为字节数组,以便可以将其写到磁盘上。将字符串数组()解码为字节数组()的最佳解决方案是什么? 我正在考虑对字符串数组进行两次迭代,第一个迭代以获得字节数组所需的实际大小,然后第二个迭代写入每个元素的长度和实际字符串()。 解决方案必须能够以其他方式进行转换;从一个到一个。 问题答案: 让我们忽略一个事实,那就是走一秒钟。您需要做的第一件事是将序列化格式编组为

  • 如何将字符串(字节字符串)转换为字节(字节字符串),而不必手动复制和粘贴字符串并在其前面放置b?