You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java中如何使用Matcher提取两个Bearer token并以冒号拼接返回

解决方案

核心调整点

  • 将正则Pattern提取为类静态常量,避免每次方法调用重复编译正则表达式,提升执行效率
  • 抽取独立的单个token提取方法,复用匹配逻辑,同时增加匹配失败的异常处理,避免空指针风险
  • 在原getToken方法中分别提取新旧两个token的值,按照要求用英文冒号拼接后返回

完整代码实现

import org.apache.commons.lang3.StringUtils;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class TestToken {
    // 静态常量存储正则规则,仅编译一次
    private static final Pattern BEARER_PATTERN = Pattern.compile(
            "^Bearer (?<token>[a-zA-Z0-9-._~+/]+)=*$",
            Pattern.CASE_INSENSITIVE);

    public static void main(String[] args) {
        String oldToken = "Bearer IdmH0VCifziTjHNGfyKfK9YCoEsy6nTDI";
        String newToken = "Bearer IdsfdWeRrrfziTjHNGfyKfK9YCoEsy6nTDI";
        String result = getToken(oldToken, newToken);
        System.out.println("result: " + result);
    }

    private static String getToken(String oldToken, String newToken) {
        // 分别提取两个token
        String extractedOld = extractSingleToken(oldToken);
        String extractedNew = extractSingleToken(newToken);
        // 按要求拼接,冒号两侧带空格
        return extractedOld + " : " + extractedNew;
    }

    /**
     * 提取单个Bearer格式字符串中的有效token
     * @param bearerStr 待提取的Bearer格式字符串
     * @return 有效token值
     */
    private static String extractSingleToken(String bearerStr) {
        if (StringUtils.isBlank(bearerStr) || !StringUtils.startsWithIgnoreCase(bearerStr, "bearer")) {
            throw new IllegalArgumentException("非法的Bearer格式字符串:" + bearerStr);
        }
        Matcher matcher = BEARER_PATTERN.matcher(bearerStr);
        if (matcher.matches()) {
            return matcher.group("token");
        }
        throw new IllegalArgumentException("未匹配到有效token:" + bearerStr);
    }
}

运行输出

result: IdmH0VCifziTjHNGfyKfK9YCoEsy6nTDI : IdsfdWeRrrfziTjHNGfyKfK9YCoEsy6nTDI

内容的提问来源于stack exchange,提问作者Learning Java

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.21 20:24:03