Java 当字符串为有效字符时,将字符串转换为字符

Java 当字符串为有效字符时,将字符串转换为字符,java,android,string,char,android-bluetooth,Java,Android,String,Char,Android Bluetooth,我正在使用蓝牙进行套接字通信,其中我将十六进制值作为字符串格式的变量 我会写字- char char1= 0x7D; 但不知何故,如果value0x7D是字符串,那么如何将其转换为char 比如说,我做不到- String string1 = "0x7D"; char char1 = (char)string1; 有没有办法做到这一点 我想要这个,因为我可以用- char[] uploadCommand2 = {0x7d, 0x4d, 0x01, 0x00, 0x01, 0xcb}; 但

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

我会写字-

char char1= 0x7D;
但不知何故,如果value
0x7D
是字符串,那么如何将其转换为char

比如说,我做不到-

String string1 = "0x7D";
char char1 = (char)string1;
有没有办法做到这一点

我想要这个,因为我可以用-

char[] uploadCommand2 =  {0x7d, 0x4d, 0x01, 0x00, 0x01, 0xcb};
但是如果
0x7d
是一个类似--


如果去掉十六进制
字符串
表示形式的
0x
前缀,可以使用
Integer.parseInt
并转换为
char

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

输出

}
编辑

}
正如所指出的那样:

System.out.println((char)(int)Integer.decode(s));
。。。这也行

Integer.parseInt(String)
返回给定字符串的整数表示形式,然后可以从中获取字符

String string1 = "0x7D";
char char1 = (char) Integer.parseInt(string1.substring(2), 16);

编辑:这是可行的,但是
Integer.decode()
是实现这一点的方法(多亏了njzk2)。

可能重复@UrsulRosu-这将为他返回“0”。不是他想要的,不是复制品,我不明白为什么这被否决了。这是一个好问题,问得恰当,有足够的信息来尝试回答它。@njzk2取消了接近投票。这是他编辑之前的问题…:)请参见无需剥离0x,
解码that@Mena-不剥皮不可能吗?我不能得到char
0x7D
?@VedPrakash在njzk2的建议后查看我的编辑。
decode
方法就可以做到这一点。但是,您需要进行双重强制转换。不剥离0x难道不可能吗?我不能获取char
0x7D
?@VedPrakash:否。文档说明字符串只能包含
+
-
和指定基数的数字(在这种情况下,
0
-
9
a
-
f
a
-
f
)。
String string1 = "0x7D";
char char1 = (char) Integer.parseInt(string1.substring(2), 16);