当前位置: 首页 > news >正文

官方网站下载穿越火线网站建设资讯

官方网站下载穿越火线,网站建设资讯,中国做木线条的网站,wordpress主题授权码背景描述 在工作中#xff0c;有时候#xff0c;我们需要对list中是否包含了指定元素进行判断#xff0c;但是#xff0c;有时候又需要支持模糊匹配#xff0c;这个时候怎么办呢#xff1f; 比如权限#xff0c;我们知道#xff0c;权限不仅可以配置完整的路径#…背景描述 在工作中有时候我们需要对list中是否包含了指定元素进行判断但是有时候又需要支持模糊匹配这个时候怎么办呢 比如权限我们知道权限不仅可以配置完整的路径也可以配置通配符。比如系统管理员角色直接返回的权限是*。子公司A的管理员返回的是departmentA:*的权限。子公司A的人事权限是hrA:*。你自己登录系统后返回的权限是userA:view这个权限。类似这样的一个人不止是只有一个权限。多个权限那么这种情况下想要判断集合中是否包含了指定元素而且还需要模糊匹配使用Java语言怎么写呢凯哥(个人公众号凯哥Java)接下来就讲讲怎么实现的。 思路 简单匹配如果list中包含了指定的元素(element)的时候就直接返回 如果list不包含就开始模糊匹配 循环list中每个元素 2.1. 如果元素中不包含【*】的时候只需要简单的将list循环出来的数据和需要对比的元素进行equals比较即可 2.2如果元素中包含了【*】的时候就要进行第三步深入匹配 3.深入匹配 将list循环出来的每个数据与需要匹配的元素每个字符进行比较。 具体代码如下 一、定义函数接口用来判断集合中是否包含指定元素 import java.util.List; import java.util.function.BiFunction;/*** 函数式接口判断集合中是否包含指定元素模糊匹配** p 参数集合、元素 /p* p 返回是否包含 /p** author click33* since 1.35.0*/ FunctionalInterface public interface SaHasElementFunction extends BiFunctionListString, String, Boolean {} 二、开始进行对集合中是否包含了指定元素进行判断 /*** 判断集合中是否包含指定元素模糊匹配*/public SaHasElementFunction hasElement (list, element) - {// 空集合直接返回falseif(list null || list.size() 0) {return false;}// 先尝试一下简单匹配如果可以匹配成功则无需继续模糊匹配if (list.contains(element)) {return true;}// 开始模糊匹配for (String patt : list) {if(SaFoxUtil.vagueMatch(patt, element)) {return true;}}// 走出for循环说明没有一个元素可以匹配成功return false;}; 简单匹配不成功后开始模糊匹配 /*** 字符串模糊匹配* pexample:* p user* user-add -- true* p user* art-add -- false* param patt 表达式* param str 待匹配的字符串* return 是否可以匹配*/public static boolean vagueMatch(String patt, String str) {// 两者均为 null 时直接返回 trueif(patt null str null) {return true;}// 两者其一为 null 时直接返回 falseif(patt null || str null) {return false;}// 如果表达式不带有*号则只需简单equals即可 (这样可以使速度提升200倍左右)if( ! patt.contains(*)) {return patt.equals(str);}// 深入匹配return vagueMatchMethod(patt, str);} 元素中不包含【*】进行深入匹配 /*** 字符串模糊匹配** param pattern /* param str /* return /*/private static boolean vagueMatchMethod( String pattern, String str) {int m str.length();int n pattern.length();boolean[][] dp new boolean[m 1][n 1];dp[0][0] true;for (int i 1; i n; i) {if (pattern.charAt(i - 1) *) {dp[0][i] true;} else {break;}}for (int i 1; i m; i) {for (int j 1; j n; j) {if (pattern.charAt(j - 1) *) {dp[i][j] dp[i][j - 1] || dp[i - 1][j];} else if (str.charAt(i - 1) pattern.charAt(j - 1)) {dp[i][j] dp[i - 1][j - 1];}}}return dp[m][n];} 完整的匹配代码 /*** 判断集合中是否包含指定元素模糊匹配*/public SaHasElementFunction hasElement (list, element) - {// 空集合直接返回falseif(list null || list.size() 0) {return false;}// 先尝试一下简单匹配如果可以匹配成功则无需继续模糊匹配if (list.contains(element)) {return true;}// 开始模糊匹配for (String patt : list) {if(SaFoxUtil.vagueMatch(patt, element)) {return true;}}// 走出for循环说明没有一个元素可以匹配成功return false;};/*** 字符串模糊匹配* pexample:* p user* user-add -- true* p user* art-add -- false* param patt 表达式* param str 待匹配的字符串* return 是否可以匹配*/public static boolean vagueMatch(String patt, String str) {// 两者均为 null 时直接返回 trueif(patt null str null) {return true;}// 两者其一为 null 时直接返回 falseif(patt null || str null) {return false;}// 如果表达式不带有*号则只需简单equals即可 (这样可以使速度提升200倍左右)if( ! patt.contains(*)) {return patt.equals(str);}// 深入匹配return vagueMatchMethod(patt, str);}/*** 字符串模糊匹配** param pattern /* param str /* return /*/private static boolean vagueMatchMethod( String pattern, String str) {int m str.length();int n pattern.length();boolean[][] dp new boolean[m 1][n 1];dp[0][0] true;for (int i 1; i n; i) {if (pattern.charAt(i - 1) *) {dp[0][i] true;} else {break;}}for (int i 1; i m; i) {for (int j 1; j n; j) {if (pattern.charAt(j - 1) *) {dp[i][j] dp[i][j - 1] || dp[i - 1][j];} else if (str.charAt(i - 1) pattern.charAt(j - 1)) {dp[i][j] dp[i - 1][j - 1];}}}return dp[m][n];} 文章凯哥个人博客
http://www.tj-hxxt.cn/news/227534.html

相关文章:

  • 中原彼得堡航空学院网站的建设怎么样建设一个网站
  • 网站开发会员功能教程开发网页多少钱
  • 武陟县住房和城乡建设局网站网站页面设计收费
  • 手机app开发网站模板下载襄阳网站建设知名品牌
  • 北京网站制作网络推广公司网站怎么做双机房切换
  • wordpress本地 域名兰州官网优化服务
  • 上海网站推广哪家好wordpress分栏插件
  • 深圳做网站推广公司中国哪家网站做仿古做的好
  • 网站开发模块就业前景呼和浩特网站seo优化方案
  • 网站建设公司架构网站备案 多ip
  • 做展示型网站多少钱开发app学什么编程语言
  • 网站流量怎么查看网站建设与运行
  • 如何建设下载网站注册网址免费
  • 网络推广平台排行前十名昆明seo关键词
  • 小型项目外包网站网站建设多少钱一年
  • 校友网站建设方案wordpress 自动翻译
  • html5 手机网站 教程外贸建站网站建设
  • 专业网站设计制作个人帮忙做网站吗
  • 阿里网站seo网站图片居中代码
  • 中国建设银行网站的社保板块在哪里客户管理系统哪找
  • 江苏省工程建设协会网站小型营销企业网站建设策划
  • 网站集群建设pptwordpress软件推荐
  • 企业免费自助建站平台照片做成视频的软件
  • 自媒体网站源码模板dedewordpress动
  • 网站建网站建设seo帮帮您惠州百度seo找谁
  • 网站建设预算策划网站开发收税
  • 四川住房和城乡建设厅网站打不开毕业季网站如何做网页
  • 网站优化排名优化上海精品网站建设
  • 福州网站建设策划动漫制作技术专业入门
  • 水安建设集团网站wordpress 更改目录