来自十六进制数组的 Java 初始化字符串

标签 java string hex

是否可以从十六进制值数组初始化字符串,如 C 风格?

unsigned char[] charArray = {0x41, 0x42, 0x43};

为什么不能做这样的事情?

String charArray = new String((byte[]) {0x41, 0x42, 0x43});

最佳答案

这是完全有可能的,您可以通过多种方式做到这一点。

  • 使用 unicode 转义:

    String string = "\u0041\u0042\u0043";
    
  • 创建和使用字节数组:

    String string = new String(new byte[] {(byte) 0x41, (byte) 0x42, (byte) 0x43});
    

你要记住的主要事情是字符串不是某种东西的数组,它是一个单独的对象。因此,它应该作为字符串文字创建,或者使用其中一个构造函数创建。

关于来自十六进制数组的 Java 初始化字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9624638/

相关文章:

string - 使用 Perl 将 ASCII 格式的十六进制字符串转换为相同的十六进制值

java - 类文件格式的构造函数存储在哪里

java - 为什么盒装原语不支持所有运算符?

java - 如何测试顺序无关紧要的生成字符串?

将长度指定的字符串(不是 NULL 终止的)转换为 int/float?

c - 为什么这只打印 0?

binary - 计算机如何存储小数点值?

java - 为什么 toString() 方法在 Java 中的 Array 和 ArrayList 对象之间工作不同

java - Apache poi 在读取 excel 文件时的奇怪行为

java - 字符串输出以向用户显示消息