通过substring截取多个{}之内的字符串并放入list中

一、说明

通常截取一个字符串内指定字符之间的东西,一般有两种方式:  正则表达式java.lang.String 中自带的 substring 方法。今天先说采用 substring 的方法

二、采用substring 截取多个{}之内的字符串

截取方法:
    /**
     * 截取 { } 内的字符串到list中
     * @param origin 源字符串
     * @return List<String>
     */
    public static List<String> subStr(String origin) {
        if (origin == null) {
            return null;
        }
        List<String> ret = new ArrayList<>();
        int ch = 0, start, end;
        while (ch < origin.length()) {
            // 索引出现负数,说明在源字符串指定位置之后已经没有 '{' 或者 '}'
            start = origin.indexOf("{", ch);
            end = origin.indexOf("}", ch);
            // substring 内部索引禁止出现负数
            if (start == -1 || end == -1) {
                break;
            }
            String tmp = origin.substring(start + 1, end);
            //保存上一次截取时的索引
            ch = end + 1;
            ret.add(tmp);
        }
        return ret;
    }
测试:
String test = "//{username}/{password}/asafd{s}gh{n";
System.out.println(subStr(test));
System.out.println(subStr("{ss{}}"));
输出:
[username, password, s]
[ss{]

注意:看上面的输出第二行,只截取指定索引后左边第一个 '{' 和 右边第一个 '}' 。

本例也就处理一些较为简单的字符串,复杂的字符串估计还是正则表达式方便一些

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值