【发布时间】:2018-08-02 15:25:17
【问题描述】:
我从蓝牙特性中获取数据(以字节为单位)并将其转换为如下所示的浮点数组:
[318.0159, 331.81818, 324.71603, 348.4345, 323.108, 3.2360008]
我希望能够将这些数据分成 6 个字符串,
“318.0159”“331.81818”“324.71603”“348.4345”“323.108”“3.2360008”。
我已经尝试过这样做:
编辑(charData 像这样初始化):
final StringBuilder stringBuilder = new StringBuilder(bytes.length);
for (byte byteChar : bytes)
stringBuilder.append(String.format("%02X ", byteChar));
String charData = stringBuilder.toString();
String[] data = charData.split(",");
System.out.println(data[1]);
System.out.println(data[2]);
System.out.println(data[3]);
System.out.println(data[4]);
System.out.println(data[5]);
System.out.println(data[6]);
但是当它尝试打印第一个数据点时,我得到了异常:
Unhandled exception in callback
java.lang.ArrayIndexOutOfBoundsException: length=1; index=1
提前感谢您的帮助!
【问题讨论】:
-
如何初始化 charData?
-
数组索引从零开始。从0开始
-
您在拆分之前尝试打印
charData吗?这样做,看看它是否像您在问题中发布的数组。 -
你构建了一个没有逗号的字符串,然后在上面调用
split(",")。此外,您的代码中没有浮点值。
标签: java arrays regex string split