如何在Java中使用Stream API将字符串内英文字母转换为对应ASCII值
Java Stream API实现字符转ASCII值方案
完全可以通过Java Stream API完成该需求,无需编写传统逐字符循环逻辑。
实现逻辑
- 调用字符串的
chars()方法,直接获取由每个字符对应的整型码值组成的IntStream(对英文字符来说,码值就是标准ASCII值) - 通过流的过滤操作,剔除不需要转换的分隔符(本例中的下划线)
- 将保留的字符对应的ASCII值转为字符串格式,最后用指定分隔符拼接成最终结果
可运行代码示例
import java.util.stream.Collectors; public class AsciiConvertDemo { public static void main(String[] args) { String str = "a_B_c"; String result = str.chars() // 仅保留英文字符,过滤掉下划线等非字母内容 .filter(c -> Character.isLetter(c)) // 流元素本身就是ASCII整型值,直接转为字符串 .mapToObj(String::valueOf) // 用下划线拼接所有转换后的ASCII值 .collect(Collectors.joining("_")); // 输出结果:97_66_99,与预期一致 System.out.println(result); } }
适配扩展
如果需要保留原字符串中的非字母字符,只需要调整流的映射逻辑即可,无需整体改动实现结构:
// 适配场景示例:保留原字符串中的非字母字符,仅对英文字符做ASCII转换 String result = str.chars() .mapToObj(c -> { // 英文字符转ASCII值,非英文字符保留原内容 if (Character.isLetter(c)) { return String.valueOf(c); } return String.valueOf((char)c); }) .collect(Collectors.joining());
内容的提问来源于stack exchange,提问作者bigzuo
相关产品推荐
相关产品推荐

