gpt4 book ai didi

java - 对串行端口的数据线进行排序

转载 作者:行者123 更新时间:2023-12-01 15:37:52 26 4
gpt4 key购买 nike

我有一个程序,可以通过串行端口发送一串数据。

我想将数据字符串排序到不同的数组中,以便我可以显示它们或计算数字的平均值。

数字之间用逗号分隔。第一个数字始终为 0,并且不被使用,*后面的数字也是如此。下一个数字定义了逗号后的下一个数字是什么。

    #0,    1,5.430,    4,-55.3,    5,6.60,    6,151.0,    51,5.500*16    #0,    1,5.440,    51,5.400*22    #0,    1,5.480,    4,-55.0,    5,6.50,    6,151.0*37    #0,    1,5.490,    4,-53.7,    5,6.70,    51,5.500*02

由于无法插入图片我添加了一个[TAB]来显示不同的组不同的组,并添加了一个[TAB]

程序并不总是发送相同长度的行。

数组“1”包含数字“5.430”

数组“4”包含数字“-55.3”

数组“5”包含数字“6.60”

等等。

最佳答案

假设您已经通过串行端口完成了整个通信,并且第二行是有效的数据集,我将用 Scanner 包装您的串行流,并将其构造为例如:

String[] arrayAndValue;
int arrayToken;
double arrayValue;
Scanner serScanner = new Scanner(myInputStream);
serScanner.useDelimiter("[\\p{JavaWhiteSpace}+||\*dd]");
While(serScanner.hasNext()) {
scannedItem = serScanner.nextString;
arrayAndValue=scannedItem.split(",");
arrayToken =Integer.parseInt(arrayAndValue[0]);
arrayValue =Double.parseDouble(arrayAndValue[1];
//insert a switch statement here,
//based on the different values arrayToken could have
}

我所做的是使用 Scanner 类将 myInputStream 解析为数组标签和值对、arrayToken arrayValue 分别作为 String,然后使用 * 后跟两位数字的模式拆分该字符串。

这将产生一个长度为 3 的字符串数组,第一个包含 arrayToken,第二个包含 arrayValue,第三个是一个空字符串(创建的原因是尾随逗号)。

然后使用 Integer.parseIntDouble.parseDouble 调用来转换它们,然后将它们添加到 switch 中的相应数组中> 稍后声明。如果您不知道将收到的每种类型的确切数量,我建议您将项目输入到 ArrayLists 而不是 Arrays 中。

关于java - 对串行端口的数据线进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8595908/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com