gpt4 book ai didi

java - 获取字符串值的最大值

转载 作者:行者123 更新时间:2023-12-02 09:34:55 25 4
gpt4 key购买 nike

我有一个“借方”字段以字符串形式存储在数据库中,而实际上它是 double /浮点型。我想获得这个字段的最大值,我开始这样做:

    DBObject query = new BasicDBObject("debit", -1);
d= collection.find.sort(query).limit(1); // for MAX

但不幸的是,它返回的值并不是真正的最大值(返回 999.0 而不是 1432)我尝试了另一种解决方案,通过获取列表中的所有“借记”数据并获取他的最大值,但我遇到了此错误

   List<Double> list = new ArrayList<>();
while (d.hasNext()){
if(!d.next().get("debit").toString().isEmpty()){
list.add(Double.parseDouble(d.next().get("debit").toString()));

}
System.out.println(Collections.max(list));

}

错误:

Exception in thread "main" java.lang.NumberFormatException: empty String

通常我不会收到此错误,因为我为空值创建了一个 if 。

我除了获取存储为字符串的字段的最大值之外。有人可以向我提出一个想法或解决我的错误

最佳答案

您将获得下一个元素两次。因此,在第一次调用之后,您将获得第一个元素(在 if 语句中),以及 Double.parseDouble() 方法中的第二个元素。 所以你应该将代码更改为:

List<Double> list = new ArrayList<>();
while (d.hasNext()){
String string = d.next().get("debit").toString();
if(!string.isEmpty()){
try{
list.add(Double.parseDouble(string));
} catch (NumberFormatException e) {
e.printStackTrace(); //prints error
}
}
System.out.println(Collections.max(list));

}

关于java - 获取字符串值的最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57606998/

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