Java程序中如何使用正则表达式移除字符串中的某个数字?
//问题:Java程序中使用正则表达式移除某个数字
//可能出现的两种字符串
String str1="1@12@145@34";//第一种开头没有@
String str2="@1@12@145@34";//第二种以@开头
//可能出现的移除情况
// 1、移除中间的某个数字,比如移除12
// 1@145@34
// @1@145@34
// 2、移除末尾的数字
// 1@12@145
// @1@12@145
// 3、移除开头的数字
// @12@145@34
// @12@145@34
正则俺用的不熟,哪位牛牛能帮忙解决一下?
-------------------------------------------------------------------------------------
问题补充:
问题出自对权限的管理,角色的id用@分割
----------------------------------------------
| 菜单名称 | 能访问该菜单的角色id集合 |
----------------------------------------------
| 菜单1 | 1@12@145@34
----------------------------------------------
| 菜单2 | @1@12@145@34
----------------------------------------------
现在要从“菜单1”可访问角色id集合中移除id=1的角色
菜单1移除后:@12@145@34
菜单2移除后:@12@145@34
现在要从“菜单1”和“菜单2”可访问角色id集合中移除id=12的角色
菜单1移除后:1@12@145
菜单2移除后:@1@12@145
现在要从“菜单1”和“菜单2”可访问角色id集合中移除id=34的角色
菜单1移除后: 1@12@145 或者是 @1@12@145
菜单2移除后:@1@12@145
移除不想要的角色id,保证移除后的角色集合还是以@进行分割的,使用正则表达式实现
没有人能帮我解决吗?我不知道单纯的正则能不能帮我解决,我提供我现在的解决方式
String string="1@12@125@34";//第一种开头没有@
StringBuilder sb=new StringBuilder(string);
//如果前面不存在@,那么就添加一个@
if(!"".equals(sb.toString())&&!"@".equals(sb.charAt(0)+"")){
sb.insert(0,"@");
}
String str=sb.toString();
System.out.println("替换之前:"+str);
String a=str.replaceAll("@1\\b", "");
System.out.println("替换开头的1:"+a);
String b=str.replaceAll("@34\\b", "");
System.out.println("替换结尾的34:"+b);
String c=str.replaceAll("@12\\b", "");
System.out.println("替换中间的12:"+c);
你现在这个就是一个菜单权限管理的功能,我觉得你这样设计权限数据结构不太好,为什么要这样设计呢?
假如你删除某个菜单权限,我觉得最简单的方法就是,使用 String [] strs = str.split("@");这样得出一个当前菜单的所有权限值,然后再一个个(strs[i].equels."34"),如果成立了就删除此数组的值,然后把此数组重新循环拼接成你需要保存的数据字符串!!这样你觉得可以吗?
- 等 最代码怎么获取牛币啊?
- 完 谁来告诉我最代码上线的时间,答对者给5牛币,先来先得
- 等 牛友们,大家好,你们做程序员多久了?现在还好吗?
- 完 在微信打开的页面里进行app下载
- 等 最代码2014年欢乐聚声会
- 完 mysql如何查询表数据并且对3个字段降序的SQL?
- 完 最代码牛币机制改革
- 完 成功的在bae上使用了自定义运行环境 jetty+nginx的组合,大家对jetty+nginx优化有哪些心得?
- 完 进来分享一下各位牛牛是如何加入最代码大家庭的?
- 等 为什么java BufferedImage类处理大图直接抛出内存溢出的异常?
- 等 最代码是否开发手机app客户端?
- 完 java程序员学习哪些java的技术?java有哪些框架?都能做哪方面的开发?
- 等 php格式网页文件怎么运行?
- 等 Java volatile值获取的问题
- 等 前端vue,拦截了登录后台后,返回的token,requests拦截token,但是发送请求的时候,就出现跨越异常
- 等 大专本科计算机科班怎么找到Java工作?
- 等 eclipse怎么把三个java swing游戏项目合成一个项目?
- 完 伙伴们,大家都有什么好的解压方式么,分享一下~
- 完 三四线城市,6、7k,运维工作,索然无味,想去辞职上培训,各位牛牛有什么建议嘛
- 等 jsp页面输入中文变成问号
- 等 JPA在线上运行一段时间后报错Caused by: java.lang.IncompatibleClassChangeError: null
- 等 PHP 这个规则用preg_match_all怎么写
- 等 大佬们,有没有知道Alfresco如何配置LDAP登录呢?
- 等 php的install目录是框架带的吗?