java-StringUtils或任何库类方法来保存定界符

这个问题已经在这里有了答案:            >            How to split a string, but also keep the delimiters?                                    23个
我有一个用分隔符@和$分隔的字符串“ role1 @ role2 @ role3 @ role4 $arole”.我用下面的java代码

 

 

String str = "role1@role2@role3@role4$arole";
        String[] values = StringUtils.splitPreserveAllTokens(str, "\\@\\$");

        for (String value : values) {
            System.out.println(value);
        }

并得到了结果

 

role1
role2
role3
role4
arole

但是我的要求是在结果中保留定界符.因此,结果必须符合要求

 

role1
@role2
@role3
@role4
$arole

我分析了Apache Commons StringUtils方法来做到这一点,但是找不到任何线索.

任何库类都可以达到上述预期结果?

Inm小程序商店 | Vultr中文网

最佳答案

您可以使用具有正向前瞻性的简单拆分:

 

 

String str = "role1@role2@role3@role4$arole";
String[] res = str.split("(?=[@$])");
System.out.println(Arrays.toString(res));
// => [role1, @role2, @role3, @role4, $arole]

查看Java demo

(?= [@ $])正则表达式匹配字符串中任何位置,后跟@或$符号(请注意,$不必在[…]字符类内转义).

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值