如何在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
相关产品推荐
相关产品推荐

