java流作为参数,java-8 – 将Java 8流映射函数作为参数传递
您可以使用一个接受String和函数< String,T>的简单函数来完成它.将使用此函数转换每个字符串元素.好消息是这个函数可以返回你想要的任何类型:Integer,Double,BigDecimal,String或你想要的任何其他类型.在下面的示例中,我使用方法引用,如:
> Integer :: valueOf将元素转换为整数值
> Double :: valueOf将元素转换为Double值
> String :: valueOf将元素转换为String值
考虑以下示例:
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import java.util.function.Function;
import java.util.stream.Collectors;
public class ParsingStringTest {
public static void main(String[] args) {
String str = "1, , 3, 4, 5, , 7, sasd, aaa, 0";
List doubles = parse(str, Double::valueOf);
List integers = parse(str, Integer::valueOf);
List strings = parse(str, String::valueOf);
System.out.println(doubles);
System.out.println(integers);
System.out.println(strings);
Double[] array = doubles.toArray(new Double[doubles.size()]);
System.out.println(Arrays.toString(array));
}
public static List parse(String str, Function parseFunction) {
return Arrays.stream(str.split(","))
.filter(s -> !s.isEmpty())
.map(s -> {
try {
return parseFunction.apply(s.trim());
} catch (Exception e) {}
return null;
})
.filter(Objects::nonNull)
.collect(Collectors.toList());
}
}
以下示例的控制台输出是:
[1.0, 3.0, 4.0, 5.0, 7.0, 0.0]
[1, 3, 4, 5, 7, 0]
[1, , 3, 4, 5, , 7, sasd, aaa, 0]
[1.0, 3.0, 4.0, 5.0, 7.0, 0.0]
我希望它有所帮助.
java流作为参数,java-8 – 将Java 8流映射函数作为参数传递相关推荐
- java 内存分配参数_浅谈JAVA内存分配与参数传递
java中方法的参数传递方式只有一种:值传递. java内存分配: 1.栈:存放 基本类型的数据.对象的引用(类似于c语言中的指针) 2.堆:存放用new产生的数据 3.静态域:存放在对象中用stat ...
- java 方法当参数_如何在Java中将函数作为参数传递?
如何在Java中将函数作为参数传递? 这个问题在这里已有答案: Java Pass方法作为参数 14个答案 是否可以将方法作为参 ...
- java 不定长参数_简单介绍Java的不定长度参数
本文版权归作者所有,仅供用来网上学习来用,读者可以收藏,请不要下载到本机和重新发布到其它网站 先看两个简单的例子,来感受一下Java的不定长度参数 第一个例子: public class VariAr ...
- java 方法 多参数_需要在Java方法中传递多个(20+)参数。这样做有效吗?
我在Java类中有多个方法,其中每个方法都有20多个参数.我将在另一个类中为这个类创建一个对象并调用每个方法.通常我在Selenium Java中使用POM(页面对象模型). 所以在每个Page对象类 ...
- java 函数 作为参数_如何在Java中将函数作为参数传递?
小编典典 Java 8及以上 如果你的类或接口只有一个抽象方法(有时称为SAM type),则使用Java 8+ lambda表达式,例如: public interface MyInterface ...
- java in out 参数_总是避免Java中的in-out参数?
毫无疑问,输入输出参数会导致代码混乱,因为它们可能会增加意外/不可预测的副作用. 所以,许多优秀的程序员说: 避免使用in-out参数来更改可变方法参数.希望保持参数不变. 对于一个完美主义程序员来说 ...
- java参数错误,参数不匹配错误java.lang.IllegalArgumentException: argument type mismatch
当前位置:我的异常网» Java Web开发 » 参数不匹配错误java.lang.IllegalArgumentException 参数不匹配错误java.lang.IllegalArgumentE ...
- Java基础班学习笔记(13)IO流
知识要点: 1:异常(理解) (1)程序出现的不正常的情况. (2)异常的体系 Throwable |--Error 严重问题,我们不处理. |--Exception |--RuntimeExcept ...
- java输出流输入流的使用_Java中的IO流之文件输入输出流
Java中的IO流之文件输入输出流 1.文件流介绍 文件流是以字节为单位进行读写文件的,所以属于字节流,并且是低级流.文件流位于java.io包下. 输入输出流分别是FileInputSteam和Fi ...
- java IO之 File类+字节流 (输入输出 缓冲流 异常处理)
1. File类 File 路径问题: 上下级文件夹之间使用分隔符分开: 在Windows中分隔符为'\' ,在Unix/Linux中分隔符为'/' 跨平台分隔符: 专业的做法是使用File.sepa ...
最新文章
- 制药行业验证过程中的偏差如何处理?
- 整系数多项式的整除平移不变性
- eclipse 中的 maven run configurations
- [私]-optee的同步方法
- 算法(69)----最长和谐子序列
- SAP CRM WebClient UI Home page里Workflow task retrieve logic
- ux和ui_从UI切换到UX设计
- 《父亲家书》终篇:来京探望儿子之后
- JAVA敏捷开发环境搭建
- Eclipse在线安装Hibernate插件
- qt android .so反编译,Qt5 程序初步逆向分析+解析脚本
- IAR for STM8介绍、下载、安装与注册
- 学习笔记(三):WiFi-Sleep
- Django 开发文档
- 模版方法模式--旅游签证
- mysql 5.6 json处理_mysql5.6版本怎么对json进行截取某个具体的值
- 技术专栏|多旋翼飞行器振动机理分析和减振设计
- {ret:100029,msg:client request's api name is not existed}
- 【分子结构】原子结构总结——2015年9月12日
- 魔兽worldserver.conf 服务端配置文件说明
热门文章
- nginx 完全关闭 access_log
- 无法进入recovery模式?fastboot来拯救
- SharePoint2013 App 开发中 自定义网站栏,内容类型,列表。
- [转] 在ASP.NET MVC3中使用EFCodeFirst 1.0
- jQuery和asp.net mvc相关资源链接
- LoadRunner的Apache的监控
- Linux如何创建makefile文件,如何在Linux上为gcc创建简单的makefile?
- Cookie的简单理解和使用
- 什么是JDBC,JDBC的主要功能是什么?
- 打开gedit_使用 gedit 文本编辑器优化你的 GNOME 体验 | Linux 中国