gpt4 book ai didi

java - 从字符串中提取数据的快速方法

转载 作者:行者123 更新时间:2023-11-30 07:54:25 27 4
gpt4 key购买 nike

我的 OkHttpClient 回复如下:

{"CUSTOMER_ID":"928941293291"}
{"CUSTOMER_ID":"291389218398"}
{"CUSTOMER_ID":"1C4DC4FC-02Q9-4130-S12B-762D97FS43C"}
{"CUSTOMER_ID":"219382198"}
{"CUSTOMER_ID":"282828"}
{"CUSTOMER_ID":"21268239813"}
{"CUSTOMER_ID":"1114445184"}
{"CUSTOMER_ID":"2222222222"}
{"CUSTOMER_ID":"99218492183921"}

我想提取 minId 和 maxId 之间的所有 Long 类型的 customerId(然后跳过 1C4DC4FC-02Q9-4130-S12B-762D97FS43C)。这是我的实现:

final List<String> customerIds = Arrays.asList(response.body().string()
.replace("CUSTOMER_ID", "")
.replace("\"", "")
.replace("{", "").replace(":", "")
.replace("}", ",").split("\\s*,\\s*"));
for (final String id : customerIds) {
try {
final Long idParsed = Long.valueOf(id);
if (idParsed > minId && idParsed < maxId) {
ids.add(idParsed);
}
} catch (final NumberFormatException e) {
logger.debug("NumberFormatException", e);
}
}

我有一长串 customerId(大约 1M),那么性能非常重要。这是对我行为的最佳实现?

最佳答案

我会使用 BufferedReader 逐行读取字符串 https://www.mkyong.com/java/how-to-read-file-from-java-bufferedreader-example/

我会减少每一行的替换量

String id= line.replace({"CUSTOMER_ID":", "");
id = id.substring(0, id.length-2); //to avoid one more replace

然后应用解析长逻辑的尝试,将成功的尝试添加到列表中。

关于java - 从字符串中提取数据的快速方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44042660/

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