Java中如何对字符串数组映射函数?如何用函数式方式分割修剪字符串
在Java中用函数式编程实现字符串分割与批量修剪
没问题!用Java 8及以上版本的Stream API,就能轻松用一行函数式代码替代你原来的循环实现,完美满足需求。
核心解决方案
直接上代码,一行搞定分割+修剪:
String[] trimmedArray = Arrays.stream(inputstring.split(";")) .map(String::trim) .toArray(String[]::new);
代码分步解释
Arrays.stream(inputstring.split(";")):先通过split(";")得到原始分割数组,再用Arrays.stream()把它转换成Stream流,这是函数式操作的基础.map(String::trim):调用map方法对流中的每个字符串元素批量执行trim()操作,这一步就替代了原来的循环遍历赋值,属于典型的函数式映射操作.toArray(String[]::new):把处理后的Stream流转换回字符串数组,得到最终的修剪后结果
进阶:过滤空字符串
如果你的输入可能出现连续分号(比如"apple; banana;; cherry;"),分割+修剪后会产生空字符串,这时可以加个过滤操作去掉它们:
String[] trimmedArray = Arrays.stream(inputstring.split(";")) .map(String::trim) .filter(s -> !s.isEmpty()) .toArray(String[]::new);
这种写法相比原来的循环,不仅更简洁,还把要做什么(分割、修剪、过滤)和具体怎么做(循环遍历)分离开,代码可读性和维护性都更高。
内容的提问来源于stack exchange,提问作者krenkz
相关产品推荐
相关产品推荐

