java - 当 String 是有效的 char 时将 String 转换为 char

标签 java android string char android-bluetooth

我正在使用蓝牙进行套接字通信,其中我将十六进制值作为字符串格式的变量。

我会写-

char char1= 0x7D;

但不知何故,如果值 0x7D 是字符串,那么如何将其转换为 char。

比如,我做不到-

String string1 = "0x7D";
char char1 = (char)string1;

有什么方法可以做到这一点?

我想要这个因为我可以用 - 写入套接字

char[] uploadCommand2 =  {0x7d, 0x4d, 0x01, 0x00, 0x01, 0xcb};

但如果 0x7d 是一个像这样的字符串就不行了 --

char[] uploadCommand2 =  {string1, 0x4d, 0x01, 0x00, 0x01, 0xcb};

最佳答案

如果您去除十六进制 String 表示的 0x 前缀,您可以使用 Integer.parseInt 并转换为 char

请参阅下面的编辑 以获取替代方案(可能是更优雅的解决方案)。

String s = "0x7D";
//                  | casting to char
//                  |    | parsing integer ...
//                  |    |                | on stripped off String ...
//                  |    |                |               | with hex radix
System.out.println((char)Integer.parseInt(s.substring(2), 16));

输出

}

编辑

作为njzk2指出:

System.out.println((char)(int)Integer.decode(s));

... 也可以。

关于java - 当 String 是有效的 char 时将 String 转换为 char,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23519202/

相关文章:

从另一个类访问 Java JTextField 信息

android - CountDownTimer Android停止当前 Activity 并转到下一个

java - 通过分割或使用正则表达式将 ID 与另一个字符串进行匹配

arrays - 如何使用vba在逗号之间分割字符串并将每个字符串存储在数组变量中

java - GridPane 不跨越整个 VBox

java - 游戏加载时崩溃 : Understanding of "JNI critical lock held for ..."

android - Gradle构建在 “Configure Build”上失败

android - 如何从内核代码重启安卓手机

php - 使用PHP计算字符串中的五个逗号后,将字符串转换为数组

java - 在 Spring bean 中定义枚举映射