Skip to content

字符流

在 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>,因此无需额外拆箱操作。