去掉字符串首尾指定字符
功能需求
(为了印象深刻,在这里我把使用的语境也写出来了,如果各位不想了解语境,直接跳到文末获取方法)现有一张附件表main_tablea_ttachfile、一张房间表room。
现在的需求是:每一个房间都要有附件上传共能(支持多张上传)。
需求分析
附件表整个系统都在引用,所以不能轻易乱动,能动的就是room表。那么满足这个需求的解决方案有两个:第一个方案是创建一个关联表,用来关联room表的id和main_tablea_ttachfile表的id,查询的时候作关联查询;第二个方案就是:room表新增一个字段,用来保存main_tablea_ttachfile的id,这些id之间用指定的符号隔开(,/+./*等等)。现在我采用的是第二种方案,id之间用逗号(、)隔开。
问题现象
以下是控制器里面的一个方法:
@RequestMapping("room-view")public String view(@RequestParam(value = "id", required = false) Long id, Model model) throws BadSqlGrammarException {logger.info("****-room-view.do,参数id:" + id);if (id != null) {Room room = roomManager.get(id);model.addAttribute("model", room);//查询出改房间下的附件String filesId = room.getMultipartFilesId();List<Map<String, Object>> multipartFiles = new ArrayList<>();if (filesId != null) {if (filesId.length() > 0) {Util util = new Util();//去掉首尾的 ","filesId = util.trimBothEndsChars(filesId, ",");String sql = "SELECT ID,CONF_ID,PATH,ATTACH_SHOW_NAME,ATTACH_SIZE,ATTACH_FILE_NAME FROM main_tablea_ttachfile WHERE delete_flag = '1' AND id IN(" + filesId + ")";logger.info("sql:" + sql);multipartFiles = jdbcTemplate.queryForList(sql);logger.info("multipartFiles:" + multipartFiles.toString());}}model.addAttribute("multipartFiles", multipartFiles);}return "roompage/room/room-view";}
正如上所示,我的SQL查询语句的条件是:in,条件来源是room的属性。
现在的问题就是,如果在某个时候我删除了room的MultipartFilesId这个属性里面的首位id或者末位id那么就会造成这个属性值如下情况:,a,b,c/a,b,c, 换言之就是首位/末位有逗号,所以我们在进行查询的时候先得把首位逗号去掉。如何实现呢?
具体实现
/*** 去掉首尾指定字符串* @param srcStr* @param splitter* @return*/public String trimBothEndsChars(String srcStr, String splitter) {String regex = "^" + splitter + "*|" + splitter + "*$";return srcStr.replaceAll(regex, "");}
去掉字符串首尾指定字符相关推荐
- 去掉字符串首尾指定的字符
话不多说直接上代码 /*** 去掉字符串头尾指定字符* @param source 需要处理的字符串* @param element 指定字符* @return*/public static Stri ...
- js 字符串删除首尾_JavaScript trim 实现去除字符串首尾指定字符的简单方法
实例如下: String.prototype.trim = function (char, type) { if (char) { if (type == 'left') { return this. ...
- 去掉字符串头尾指定字符
package com.cloudsky.utils; /*** @ClassName: TrimCharUtil* @Author: lulu* @Description: 去掉字符串头尾指定字符* ...
- java去掉首尾字符_去掉字符串首尾指定的字符或空格
[对用到的方法进行了解] var str = 'hdsjfi2423'; alert(str.indexOf('d'));//1 alert(str.indexOf('2'));//6 alert(s ...
- js 去除字符串首尾指定字符
' abc '.trim(); // 'abc' 这是去除首尾空格的办法 那么有没办法去除首尾指定的字符,肯定有,方法很多,,下面通过正则表达式实现 例如,我想去掉首尾逗号 , let str = ' ...
- python3 strip lstrip rstrip 删除字符串首尾指定字符
1. strip() 它的函数原型:string.strip(s[, chars]),它返回的是字符串的副本,并删除前导和后缀字符.(意思就是你想去掉字符串里面的哪些字符,那么你就把这些字符当参数传入 ...
- 去掉首尾字符java_Java去除字符串首尾特定字符
工作中,由于mysql存储格式特定,字符串首尾均带有单引号,需要对首尾单引号做一个去除处理.我将此封装到一个公共的方法里,代码如下: 1 /** 2 * 去除首尾指定字符 3 * @param str ...
- java字符串去除首尾指定字_Java去除字符串首尾特定字符
工作中,由于mysql存储格式特定,字符串首尾均带有单引号,需要对首尾单引号做一个去除处理.我将此封装到一个公共的方法里,代码如下: 1 /** 2 * 去除首尾指定字符 3 * @param str ...
- C++去掉字符串首尾的空格
去掉字符串首尾空格 本关任务:文本匹配的时候经常会因为空格个数的不同而匹配失败,现在要求你编写程序对输入的字符串进行处理,去掉首尾的空格. 例如:输入的字符串是" abcd ",去 ...
最新文章
- 三周写出高性能的Python代码,这些小技巧你值得一试。
- lucene字典实现原理——FST
- sht20温湿度传感器原理图_温湿度传感器在孵化行业怎么应用
- Python 操作 MySQL 数据库
- 每周分享第8期(2019.5.25)
- python安装scrapy_Python安装Scrapy的种种
- eclipse 快捷键
- HibernateAnnotation入门实例
- Ubuntu命令大全(转载)
- android 人体部位点击,用 TensorFlow Lite 在安卓系统上实时人体姿态跟踪
- 怎样修复计算机系统软件,重装系统后软件如何恢复呢?
- java jnlp 运行_JNLP文件如何能成功安装运行?
- cacheable 表达式_springboot @Cacheable 基本使用
- NVMe-MI协议解读
- 优达学城 深度学习 任务1
- 2018最新的web前端开发框架排行总结
- linux 刷流量ip,程序员同事问shell脚本刷流量,不讨巧帮他填了一个巨坑
- mongodb 基本介绍
- Gearman使用简介
- 爬取历史天气数据并绘制成折线图
热门文章
- NFM(Neural Factorization Machines):模型原理及pytorch代码实现
- 【BZOJ1778】[Usaco2010 Hol]Dotp 驱逐猪猡
- ARDUINO:控制两台步进电机同步运转
- android滑动冲突的解决方案
- 【BZOJ3442】学习小组 费用流
- 真 彻底 Navicat导入Excel文件表时无法打开的四种解决办法
- Spark—15分钟教程
- 手把手介绍Manjaro中添加Google输入法---亲身测试,成功安装
- Java基础语法02-流程控制
- the connection to the server was unsuccessful(file ///android_asset/www/index.html)