您可以使用一个接受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流映射函数作为参数传递相关推荐

  1. java 内存分配参数_浅谈JAVA内存分配与参数传递

    java中方法的参数传递方式只有一种:值传递. java内存分配: 1.栈:存放 基本类型的数据.对象的引用(类似于c语言中的指针) 2.堆:存放用new产生的数据 3.静态域:存放在对象中用stat ...

  2. java 方法当参数_如何在Java中将函数作为参数传递?

    如何在Java中将函数作为参数传递? 这个问题在这里已有答案: Java Pass方法作为参数                                     14个答案 是否可以将方法作为参 ...

  3. java 不定长参数_简单介绍Java的不定长度参数

    本文版权归作者所有,仅供用来网上学习来用,读者可以收藏,请不要下载到本机和重新发布到其它网站 先看两个简单的例子,来感受一下Java的不定长度参数 第一个例子: public class VariAr ...

  4. java 方法 多参数_需要在Java方法中传递多个(20+)参数。这样做有效吗?

    我在Java类中有多个方法,其中每个方法都有20多个参数.我将在另一个类中为这个类创建一个对象并调用每个方法.通常我在Selenium Java中使用POM(页面对象模型). 所以在每个Page对象类 ...

  5. java 函数 作为参数_如何在Java中将函数作为参数传递?

    小编典典 Java 8及以上 如果你的类或接口只有一个抽象方法(有时称为SAM type),则使用Java 8+ lambda表达式,例如: public interface MyInterface ...

  6. java in out 参数_总是避免Java中的in-out参数?

    毫无疑问,输入输出参数会导致代码混乱,因为它们可能会增加意外/不可预测的副作用. 所以,许多优秀的程序员说: 避免使用in-out参数来更改可变方法参数.希望保持参数不变. 对于一个完美主义程序员来说 ...

  7. java参数错误,参数不匹配错误java.lang.IllegalArgumentException: argument type mismatch

    当前位置:我的异常网» Java Web开发 » 参数不匹配错误java.lang.IllegalArgumentException 参数不匹配错误java.lang.IllegalArgumentE ...

  8. Java基础班学习笔记(13)IO流

    知识要点: 1:异常(理解) (1)程序出现的不正常的情况. (2)异常的体系 Throwable |--Error 严重问题,我们不处理. |--Exception |--RuntimeExcept ...

  9. java输出流输入流的使用_Java中的IO流之文件输入输出流

    Java中的IO流之文件输入输出流 1.文件流介绍 文件流是以字节为单位进行读写文件的,所以属于字节流,并且是低级流.文件流位于java.io包下. 输入输出流分别是FileInputSteam和Fi ...

  10. java IO之 File类+字节流 (输入输出 缓冲流 异常处理)

    1. File类 File 路径问题: 上下级文件夹之间使用分隔符分开: 在Windows中分隔符为'\' ,在Unix/Linux中分隔符为'/' 跨平台分隔符: 专业的做法是使用File.sepa ...

最新文章

  1. 制药行业验证过程中的偏差如何处理?
  2. 整系数多项式的整除平移不变性
  3. eclipse 中的 maven run configurations
  4. [私]-optee的同步方法
  5. 算法(69)----最长和谐子序列
  6. SAP CRM WebClient UI Home page里Workflow task retrieve logic
  7. ux和ui_从UI切换到UX设计
  8. 《父亲家书》终篇:来京探望儿子之后
  9. JAVA敏捷开发环境搭建
  10. Eclipse在线安装Hibernate插件
  11. qt android .so反编译,Qt5 程序初步逆向分析+解析脚本
  12. IAR for STM8介绍、下载、安装与注册
  13. 学习笔记(三):WiFi-Sleep
  14. Django 开发文档
  15. 模版方法模式--旅游签证
  16. mysql 5.6 json处理_mysql5.6版本怎么对json进行截取某个具体的值
  17. 技术专栏|多旋翼飞行器振动机理分析和减振设计
  18. {ret:100029,msg:client request's api name is not existed}
  19. 【分子结构】原子结构总结——2015年9月12日
  20. 魔兽worldserver.conf 服务端配置文件说明

热门文章

  1. nginx 完全关闭 access_log
  2. 无法进入recovery模式?fastboot来拯救
  3. SharePoint2013 App 开发中 自定义网站栏,内容类型,列表。
  4. [转] 在ASP.NET MVC3中使用EFCodeFirst 1.0
  5. jQuery和asp.net mvc相关资源链接
  6. LoadRunner的Apache的监控
  7. Linux如何创建makefile文件,如何在Linux上为gcc创建简单的makefile?
  8. Cookie的简单理解和使用
  9. 什么是JDBC,JDBC的主要功能是什么?
  10. 打开gedit_使用 gedit 文本编辑器优化你的 GNOME 体验 | Linux 中国