gpt4 book ai didi

java - 给定一个具有字符串类型值的映射,这些值都是用逗号分隔的数字,是否可以将每个值转换为 double 值?

转载 作者:行者123 更新时间:2023-12-01 16:20:53 25 4
gpt4 key购买 nike

我最近询问如何使用 Gson 将 Json 转换为可以对值进行排序的内容,最好的选择是使用 Linked HashMap。

List<String> stringList = Arrays.asList(tm.split("  |,")); // split into pair key : value
Map<String, List<String>> mapString = new LinkedHashMap<>();
stringList.forEach(s1 -> {
String[] splitedStrings = s1.split(": "); //split into key : value
String key = splitedStrings[0].replaceAll("[^A-Za-z0-9]",""); // remove non alphanumeric from key, like {
String value = splitedStrings[1];
if (mapString.get(key) == null) {
List<String> values = new ArrayList<>();
values.add(value);
mapString.put(key, values);
}else if (mapString.get(key) != null) {
mapString.get(key).add(value);
}
});

运行此代码时,将创建一个包含频率、幅度和数据其他属性键的映射。这是原始 Json 消息与同一组数据的结果映射值的比较(经过格式化以使其更易于理解且看起来更好)

 {"groupId":"id3_x_","timestamp":1.591712740507E9,"tones": 
[{"frequency":1.074,"level":3.455,"bw":0.34,"snr":3.94,"median":0.877},
{"frequency":14.453,"level":2.656,"bw":0.391,"snr":2.324,"median":1.143},
{"frequency":24.902,"level":0.269,"bw":0.282,"snr":2.216,"median":0.121},
{"frequency":22.607,"level":0.375,"bw":0.424,"snr":2.034,"median":0.184},
{"frequency":9.863,"level":2.642,"bw":0.423,"snr":1.92,"median":1.376}]}

映射值:

Message Received  
Group ID: id3_x_
Message Topic: pi7/digest/tonals
Time of Arrival: 1.591712740507E9
---------------DATA---------------
Frequency: [1.07, 14.45, 24.90, 22.61, 9.86]
Magnitude: [3.46, 2.66, 0.27, 0.38, 2.64]
Bandwidth: [0.34, 0.39, 0.28, 0.42, 0.42]
SNR: [3.94, 2.32, 2.22, 2.03, 1.92]
Median: [0.88, 1.14, 0.12, 0.18, 1.38]]

虽然这对于分析数据非常有用,但存储的信息是字符串。我希望能够做的是将 map 中的每个值(例如:频率 1.07、14.45 等)转换为 double ,然后我可以运行其他程序并运行计算,例如平均值。我在网上查了一下,没有找到我要找的任何东西,所以我想知道是否有一种方法可以使用数组、列表或任何其他方式将这些字符串转换为 double 。

我是一家科技公司的实习生,所以我仍在尝试用 Java 进行锤炼并描述我正在谈论的内容,所以如果对我所问的内容有任何疑问,请告诉我并提前致谢!

最佳答案

你可以从JSON文件中获取一个Map,你也可以从Map中提取values数组yourmap.getvalues(),然后你可以解析这些元素中的每一个并将其转换为double

<小时/>

示例:频率:[1.07, 14.45, 24.90, 22.61, 9.86]

for ( String f : Frequency ) {
double f_double = Double.parse(f); // turns String into double
}

关于java - 给定一个具有字符串类型值的映射,这些值都是用逗号分隔的数字,是否可以将每个值转换为 double 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62285482/

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