gpt4 book ai didi

java - 解析特定格式的字符串

转载 作者:行者123 更新时间:2023-12-02 03:39:55 24 4
gpt4 key购买 nike

我有一个响应字符串,如下所示,我需要解析它并将其存储在我的类中。格式如下:

  • 任务名称后跟这条虚线-------------,也是固定的
  • 然后就在key:value 对下面。它可以有很多键值对

下面是响应字符串。

abc-------------
Load:79008
Peak:4932152

def-------------
Load:79008
Peak:4932216

ghi-------------
Load:79008
Peak:4874588

pqr-------------
Load:79008
Peak:4874748

下面是我的类(class):

public class NameMetrics {

private String name;
private Map<String, String> metrics;

// setters and getters

}

在上面的类中,name 应为 abcmetrics 映射应以 Load 作为键, 79008 作为值,与其他键:值对相同。我正在考虑使用正则表达式,但不确定是否可以在这里使用正则表达式。

private static final Pattern PATTERN = Pattern.compile("(\\S+):\\s*(\\S*)(?:\\b(?!:)|$)");

String response = restTemplate.getForObject(url, String.class);
// here response will have above string.

最好的方法是什么?

最佳答案

BufferedReader reader = new BufferedReader(...???...);
NameMetrics current = null;
List<NameMetrics> result = new ArrayList<>();
while (true) {
String s = reader.readLine();
if (s == null) {
break; // end reached
}
if (s.trim().isEmpty()) {
continue; // Skip empty line
}
int cut = s.indexOf(':');
if (cut == -1) {
cut = s.indexOf('-');
if (cut == -1) {
continue;
}
current = new NameMetrics();
current.setName(s.substring(0, cut));
result.add(current);
} else if (current != null) {
current.setMetrics(s.substring(0, cut), s.substring(cut+1));
}
}

关于java - 解析特定格式的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36946752/

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