java 8 将list中的string类型的num数字求和
时间: 2024-09-18 08:17:38 浏览: 103
在Java 8中,你可以使用Stream API来方便地对List<String>类型的数字符合并转换成整数,并计算它们的总和。这里是一个示例:
```java
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class SumStringNumbers {
public static void main(String[] args) {
List<String> numbers = Arrays.asList("1", "2", "3", "4", "5"); // 假设这是一个包含字符串数字的列表
int sum = numbers.stream() // 使用stream()
.mapToInt(Integer::parseInt) // 转换每个字符串为int
.sum(); // 计算所有数值的总和
System.out.println("Sum of string numbers is: " + sum);
}
}
```
在这个例子中,`mapToInt()`函数将每个字符串转换为整数,然后`sum()`方法用于计算总和。请注意,如果列表中有非数字字符串,上述代码会抛出NumberFormatException。
相关问题
list string转BigDecimal 求和
在将字符串列表转换为BigDecimal并求和时,需要注意以下几点。首先,要确保字符串不为空,并且不包含千分位分隔符。如果字符串中包含千分位分隔符,需要先将其去除。其次,使用BigDecimal的add方法将每个BigDecimal对象相加,最后得到总和。下面是一个示例代码:
```java
import java.math.BigDecimal;
import java.util.List;
public class BigDecimalSum {
public static BigDecimal sum(List<String> stringList) {
BigDecimal sum = BigDecimal.ZERO;
for (String str : stringList) {
if (str != null && !str.isEmpty()) {
// 去除千分位分隔符
String number = str.replace(",", "");
BigDecimal num = new BigDecimal(number);
sum = sum.add(num);
}
}
return sum;
}
public static void main(String\[\] args) {
List<String> stringList = List.of("1,000.50", "2,500.75", "3,100.25");
BigDecimal total = sum(stringList);
System.out.println("总和:" + total);
}
}
```
在上述代码中,我们首先创建一个BigDecimal对象sum,并将其初始化为0。然后遍历字符串列表,对每个字符串进行非空判断,并去除千分位分隔符。接下来,将去除千分位分隔符后的字符串转换为BigDecimal对象,并使用add方法将其与sum相加,得到新的sum值。最后,输出总和。在这个例子中,字符串列表\["1,000.50", "2,500.75", "3,100.25"\]的总和为6,601.50。
#### 引用[.reference_title]
- *1* [String转BigDecimal遇到的坑](https://blog.csdn.net/weixin_42862736/article/details/123497645)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
java中list快速分组求和代码
Java中可以使用Java 8中的Stream API来实现list快速分组求和。
例如,假设我们有一个包含数字的列表,要将它们按照奇偶性分组并求和,可以这样做:
```java
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
// 使用stream()方法将列表转换为Stream对象,并使用Collectors.groupingBy()方法对数字进行分组
Map<String, Integer> sums = numbers.stream()
.collect(Collectors.groupingBy(
num -> num % 2 == 0 ? "even" : "odd", // 按照奇偶性进行分组
Collectors.summingInt(num -> num) // 对每组中的数字求和
));
System.out.println(sums); // 输出: {odd=25, even=30}
}
}
```
上述代码将输入列表中的数字按照奇偶性进行了分组,并对每个组内的数字进行了求和,最终输出了一个包含每个组的和的Map对象。
阅读全文