使用print语句找出十六进制代码"5A"的字符

Dja*_*ngo 1 java string hex char

String b = "5A";
int bConv = Integer.parseInt(b, 16); 
char $2 = bConv;    
Run Code Online (Sandbox Code Playgroud)

当我尝试这个时,我可能会失去精度错误警告.

Bac*_*ash 5

那是因为int默认情况下需要4个字节,char需要2个字节.所以通过投射你可能会丢失数据.

显式强制转换将删除警告:

String b = "5A";
int bConv = Integer.parseInt(b, 16); 
char $2 =(char)bConv;
Run Code Online (Sandbox Code Playgroud)

旁注:在我看来$2,变量的名称不好.


UPDATE

有没有更好的方法来表示使用十六进制值的字符?

不知道它是否可以被认为更好,但您可以直接将十六进制值分配给字符:

char myHexChar = 0x5A; //0x tells the compiler that the value is in hex format
Run Code Online (Sandbox Code Playgroud)

如果您打印该变量,您将获得 Z