java - 在 java 中进行二进制到十六进制转换时,我的答案前面总是有一个空值
问题描述
所以我的代码可以工作并输出正确的答案,但是它在答案中给了我一个空值。
private void toHex() {
char hexNum[] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
String binary = num;
if(binary.length() % 4 != 4) {
while(binary.length() % 4 != 0) {
binary = "0" + binary;
}
}
for(int i = 0; i < binary.length(); i+=4) {
String temp2 = binary.substring(i, i+4);
int sum = 0;
sum += Integer.parseInt(temp2.charAt(0) + "")*8;
sum += Integer.parseInt(temp2.charAt(1) + "")*4;
sum += Integer.parseInt(temp2.charAt(2) + "")*2;
sum += Integer.parseInt(temp2.charAt(3) + "")*1;
hex = hex + hexNum[sum];
sum = 0;
temp2 = "";
}
}
private void outHex() {
System.out.print("Your number from binary to hexadecimal is: 0x" + hex);
pw.print("Your number from binary to hexadecimal is: 0x" + hex);
}
顺便说一句,我将 num 声明为方法外部的字符串,它是用户输入的数据。十六进制也被声明为方法之外的字符串。
解决方案
我敢打赌,您将十六进制声明为。
String hex;
默认为null
.
尝试以下操作:
String hex = "";
这是一个空字符串。
推荐阅读
- jdbc - 使用 jdbc 将表保存到配置单元:编译语句时出错:FAILED:ParseException line 1:40 cannot identify input near '"Name"' 'TEXT'
- ios - 如何在 iOS 中找到锁所有者线程?
- c# - 扩展功能
包括文本值? - r - 解析r中的行
- powershell - 你好,团队!寻找一种简单的方法来找出有多少列返回格式表命令行开关
- python - 将图像对象添加为 Plotly 图例条目
- java - 有没有办法利用 Jackson ObjectMapper 从 JSON 中逐个读取对象
- python - python中的子列表列表
- css - Bootstrap 手风琴表不适用于 Laravel 项目
- ios - 我的应用使用相机功能再次被 Apple 拒绝(法律 - 隐私 - 数据收集和存储)