常用工具类

使用正则拆分url

/**
	 * 从url获取ip、port和地址信息
	 * 例如 入参:rtmp://10.0.0.1:6666/live/a174658f3ba9483e9c597fb7c4d2bd2d_sub
	 * 出参:[10.0.0.1, 6666, /live/a174658f3ba9483e9c597fb7c4d2bd2d_sub]
	 * @param url
	 * @return
	 */
	public static Map<String,String> getInfoFromUrl(String url){
		Map<String,String> infos = new HashMap<>(3);
		//			Pattern p = Pattern.compile("(\\w+):\\/\\/([^/:]+)(:\\d*)?([^# ]*)")
		Pattern p = Pattern.compile("(\\w+)://([^/:]+):(\\d*)?([^# ]*)");
		Matcher matcher = p.matcher(url);
		if (matcher.find()) {
			infos.put("ip",matcher.group(2));
			infos.put("port",matcher.group(3));
			infos.put("urlName",matcher.group(4));
		}
		return infos;
	}
/**
	 * 从url获取ip信息
	 * 例如 入参:rtsp://10.0.0.1:655/Eurl/qEPs1Km
	 * 出参:10.0.0.1
	 * @param url
	 * @return
	 */
public String getIpFromUrl(String url){
		String ip = "";
		Pattern p = Pattern.compile("(?<=//|)((\\w)+\\.)+\\w+");
		Matcher matcher = p.matcher(url);
		if (matcher.find()) {
			ip = matcher.group();
		}
		return ip;
	}

替换字符串占位符

https://www.cnblogs.com/dongma/p/10274836.html

/**
     * 
     * @param template 模板
     * @param prefix 前缀
     * @param suffix 后缀
     * @param prop 键值对
     * @return 解析好的字符串模板
     */
    public static String parseValue(String template,String prefix,String suffix,Map<String,String> prop){
        StringBuilder buf = new StringBuilder(template);
        int startIndex = template.indexOf(prefix);
        while (startIndex != -1){//找到了前缀
            int suffixIndex = buf.indexOf(suffix, startIndex);//找到后缀位置
            String key=buf.substring(startIndex+prefix.length(),suffixIndex);
//  进行字符串替换
			if (prop.containsKey(key.trim())) {
				buf.replace(startIndex, suffixIndex + suffix.length(), prop.get(key.trim()).toString());
				suffixIndex = suffixIndex + prop.get(key.trim()).toString().length() - key.length() - prefix.length() - suffix.length();// 替换后修改后缀位置
			}
            startIndex = buf.indexOf(prefix, suffixIndex);//找到下一个占位的起始位置
        }
            System.out.println(buf);
        return buf.toString();
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值