给出最大数量和范围数量,我想打印以下内容,但要尽可能短。我不知道使用IntStream是否可以完成。
输入: 最大值= 36(或任何数字) 范围= 10(或任何数字)
输出: 0-9 10-19 20-29 30-35
我的代码:
totalItems=35
rangeMax=10
rangeFrom=0
rangeTo=0
while (true) {
if(totalItems>rangeTo+rangeMax){
rangeFrom=rangeTo+1;
rangeTo=rangeTo+rangeMax;
} else if(totalItems>rangeTo+1){
rangeFrom=rangeTo+1;
rangeTo=rangeTo+(totalItems-rangeFrom);
} else {
return null;
}
}
答案 0 :(得分:0)
public static void loopingIssue(Integer totalItems, Integer range) {
IntStream.range(0, totalItems).filter(i -> i % range == 0)
.mapToObj(e -> mapToGroup(e, totalItems, range))
.forEach(System.out::print);
}
public static String mapToGroup(Integer e, Integer totalItems, Integer maxRange) {
if (e + maxRange >= totalItems) {
return e + "-" + (totalItems - 1);
} else {
return e + "-" + (e + maxRange - 1) + ", ";
}
}