You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Java循环中提取字符串列表的最大数值并赋值给实体类

解决方案

要在for循环内完成字符串列表转整数并提取最大值的操作,可直接在遍历NextDays的循环中添加逻辑处理rain字段,具体修改后的代码如下:

public List<WeeklyForecast> convert(){
    AllForecast allForecast = Templates.restTemplate(restTemplate);
    List<NextDays> something = allForecast.getNextDays();
    List<WeeklyForecast> result = new ArrayList<WeeklyForecast>();
    
    for (int i=0; i< something.size(); i++){
        NextDays before = something.get(i);
        // 初始化默认最大值,可根据业务需求调整
        int maxRain = -1;
        List<String> rainStrList = before.getRain();
        // 遍历字符串列表,转换并提取最大值
        for(String rainStr : rainStrList){
            try {
                int rainInt = Integer.parseInt(rainStr);
                if(rainInt > maxRain){
                    maxRain = rainInt;
                }
            } catch (NumberFormatException e) {
                // 处理非数字字符串的异常,可根据业务选择忽略或自定义逻辑
                e.printStackTrace();
            }
        }
        
        WeeklyForecast weekly = new WeeklyForecast(
          before.getData().getData(),
          before.getTemperature().getMaximumTemperature(),
          before.getTemperature().getMinimumTemperature(),
          maxRain);

        result.add(i,weekly);
    }
    
    return result;
}

关键说明

  • 默认值设定:maxRain初始值设为-1,如果业务要求空列表返回其他值(比如0),直接修改该初始值即可
  • 异常处理:添加try-catch捕获NumberFormatException,避免因列表中存在非数字字符串导致程序崩溃,可根据实际需求调整异常处理逻辑(例如忽略无效数据、记录日志等)
  • 循环内实现:所有转换和取值逻辑都嵌套在外部的for循环中,完全符合需求

内容的提问来源于stack exchange,提问作者Bernardo Alves

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 19:45:47