字符流¶
在 Java 8+ 中,String 类新增了 chars() 方法,它返回一个 IntStream(整数流),直接表示字符串中每个字符的 ASCII 码值。配合 sum() 方法可直接计算总和,语法简洁:
int sum = str.chars().sum();
语法解析:
1. str.chars():将字符串转换为整数流(每个字符对应其 ASCII 码)。
2. sum():对流中的所有整数求和(Java 8 的 IntStream 特有方法)。
对比传统写法:
// Java 8+ 简化写法
int sum = str.chars().sum();
// 等价于传统循环
int sum = 0;
for (char c : str.toCharArray()) {
sum += (int) c;
}
//也等价于
int sum = 0;
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
sum += (int) c; // 强制转换为int获取ASCII码
}
特点: - 基于函数式编程(Functional Programming)特性 - 代码更简洁,可读性更高 - 底层仍通过遍历实现,性能与循环相当
注意:chars() 返回的是 IntStream,而非 Stream<Character>,因此无需额外拆箱操作。