java8 - 字符串操作

String-Join操作

1.字符串之间分隔符

StringJoiner sj=new StringJoiner(",");
        sj.add("aaa");
        sj.add("bbb");
        sj.add("ccc");
        System.out.println(sj.toString());

运行结果

aaa,bbb,ccc

2.给字符串加前缀后缀以及分隔符

StringJoiner sj=new StringJoiner("/","prefix-","-suffix");
        sj.add("2017");
        sj.add("12");
        sj.add("15");
        System.out.println(sj.toString());

运行结果

prefix-2016/02/26-suffix

3.String.join
String的静态方法可以在不创建StringJoiner类的情况下拥有上述功能

String result = String.join("-", "2017", "12", "15");
        System.out.println(result);

运行结果

2017-12-15

利用List完成上述功能

List<String> list = Arrays.asList("苹果", "香蕉", "榴莲");
String result = String.join(",", list);
System.out.println(result);

运行结果

苹果,香蕉,榴莲

也可以使用Stream API完成上述的操作

System.out.println(list.stream().map(String::toUpperCase).collect(Collectors.joining(", ")));

遍历字符串

在java8中CharSequence接口添加了一个方法叫做chars()

public default IntStream chars()

default关键字修饰的接口方法是java8新添加的新特性,木得事向接口中添加已经实现的方法.chars()方法返回了一个IntStream类型,所有实现了CharSequence接口的类型,String,StringBuffer,StringBuilder类等都会返回一个IntStream类型

不过使用上还需要注意

string.chars().forEach(System.out::println);

上面这行代码运行结果都是数字
为了得到字符,我们可以这样操作

string.chars().mapToObj(ch -> Character.valueOf((char) ch)).forEach(System.out::print);

利用map接口转换成字符再进行下一步处理

那么这个接口有什么用呢?下面是chars()运用的实例

string.chars().filter(ch -> Character.isDigit(ch)).forEach(ch->System.out.print((char)ch));

这行代码筛选并输出字符串的所有数字

这个接口新增方法也是java为支持函数式编程的一个体现

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值