java - 使用 String.parseByte(string s) 处理 0x7F 以上的值 - Java
问题描述
我的 Java 代码扫描来自外部文件的字符串以填充数据结构中的字节数组。
特别是,我需要扫描一个两个字符串,然后分配一个包含字符串中文字值的字节(例如“3A”到0x3A)。这些值的范围可以在 [0x00, 0xFF] 之间的任何位置。
有谁知道解决方法?
谢谢,
- 使用 Byte.parseByte(string a) 方法仅适用于小于 Byte.MAX(0x7F) 的值,否则我的代码会生成“NumberFormatException:值超出范围”。
- 使用位操作只会产生垃圾,因为没有转换我只是在移动 ascii 值。
- 尝试解析任何大于字节的原语也会生成 NumberFormatException。
...
String a;
byte b;
Scanner fr = new Scanner(pfile);
fr.useDelimiter(" :|\\n");
while(fr.hasNext()){
a = fr.next();
if(a.charAt(0) != ' ' && a.charAt(0) != '-'){
//d = Long.parseLong(a);
b = Byte.parseByte(a.trim(), 16);
System.out.println("String a : " + a + " Parsed byte: " + b);
}
}
fr.close();
解决方案
推荐阅读
- ios - MKMarkerAnnotationView 不显示
- java - SceneBuilder for JavaFX 中可变数量的元素
- python - 如何解决“需要超过 1 个值才能解压”
- r - 在 R 中的对数转换轴上添加抖动
- c - 为什么我的 gcc 命令没有 -static 参数
- database - 实现 Slack 风格的工作区/实例架构时的数据库结构
- c++ - 沿opengl中的路径旋转
- google-analytics - enableEcommerce:增强型电子商务为 false?
- python - 龟。设置初始应用窗口位置
- python - 为什么 Kivy 中的文本是透明的。如何删除它?