我正在从蓝牙特征中获取数据(以字节为单位),并将其转换为如下所示的 float 组:
[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
提前感谢您的帮助!!
最佳答案
需要先删除[
和]
,数组索引范围为[0, 5]:
String charData = "[318.0159, 331.81818, 324.71603, 348.4345, 323.108, 3.2360008]";
charData = charData.replace("[", "").replace("]", "");
String[] data = charData.split(",");
System.out.println(data[0]);
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]);
输出:
318.0159
331.81818
324.71603
348.4345
323.108
3.2360008
为了避免前导空格,您可以使用正则表达式进行拆分:
String[] data = charData.split(",\\s*");
输出:
318.0159
331.81818
324.71603
348.4345
323.108
3.2360008
关于java - 如何将一个字符串数组拆分为多个字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51657246/