【发布时间】:2019-02-09 06:09:31
【问题描述】:
我正在寻找在 0xFE, 0xFF ( > 127) 这样的 java 字符串中插入特殊的 1 字节字符的解决方案。
我需要使用字符串而不是字节数组,因为类的方法只需要字符串类型。
String = {0x07 0xAA 0x03 FF} 我需要什么。是的,它是用于设备控制的特殊字符。
我尝试使用 String 构造函数:
byte[] arr = {0x07, (byte) 0xAA, 0x03, (byte) FF};
String s = new String(arr, "UTF-8");
//utf-8 用于1byte chars,我也试过ascII,但结果是一样的
All 可以在数组中 char 的值 127(dec) 之前工作,但是在它给出奇怪的结果之后,比如字符串中的 1 或 2 个额外字节,当然会发生,因为字节类型的最大值为 127。但是如何解决这种情况呢? ?需要帮忙。
我如何理解我不能将 char[] 添加到 String 构造函数中
【问题讨论】:
-
“我怎么理解我不能将 char[] 添加到 String 构造函数”你是什么意思?
-
String似乎有一个constructor that takes achararray。这就是你要找的东西吗? -
使用 Unicode 转义:
String s = "\u0007\u00AA\u0003\u00FF"; -
是的,我的意思是我怎么知道 char 类型占用 2 个字节,对吧?因此,char 0xFF 将被添加到字符串中,例如 0x00 0xFF, .. 但我需要 1 个字节
标签: java arrays string char byte