为什么这段代码在这里返回221?这背后的逻辑是什么?这怎么工作?请向我解释一下,因为我是Java新手.
import java.io.UnsupportedEncodingException;
public class Checksrting {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
byte[] byteArray = new byte[2];
byteArray[0] = 100;
byteArray[1] = 100;
Long ID = null;
try {
ID = Long.parseLong(new String(byteArray, "utf-8").trim(), 16);
System.out.print(ID);
} catch (NumberFormatException | UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Run Code Online (Sandbox Code Playgroud)
那么请向我解释一下utf-8和16的用途是什么?
100相当于d角色.所以你的字符串就会变成dd.
当你这样做
ID = Long.parseLong(new String(byteArray, "utf-8").trim(), 16);
Run Code Online (Sandbox Code Playgroud)
您正在使用十六进制格式将字符串转换为长数字.
ddis 的十进制值221,这就是你得到那个输出的原因.
utf-8和16的用途是什么?
utf-8是String构造函数将用于构建字符串的字符编码,并且16是用于将字符串转换为long的基数.
| 归档时间: |
|
| 查看次数: |
197 次 |
| 最近记录: |