java获取list中能转为BigDecimal的并转为BigDecimal
时间: 2024-05-31 12:05:18 浏览: 66
java BigDecimal操作
可以使用Java 8的Stream API来实现这个功能。你可以使用stream()方法将List转换为Stream,然后使用filter()方法来过滤出能转为BigDecimal的元素,最后使用map()方法将过滤后的元素转换为BigDecimal类型。以下是示例代码:
```
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Test {
public static void main(String[] args) {
List<Object> list = new ArrayList<>();
list.addAll(Arrays.asList("1.2", 2, "3.5", "abc"));
List<BigDecimal> bigDecimalList = list.stream()
.filter(o -> o instanceof String && isBigDecimal((String) o))
.map(o -> new BigDecimal((String) o))
.collect(Collectors.toList());
System.out.println(bigDecimalList);
}
private static boolean isBigDecimal(String s) {
try {
new BigDecimal(s);
return true;
} catch (NumberFormatException e) {
return false;
}
}
}
```
阅读全文