最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
java去掉文本中多余的空格与空行实例代码
时间:2022-06-29 01:24:53 编辑:袖梨 来源:一聚教程网
最近因为工作的需要,在开发一个小型的圈子系统。功能类似一个简化的微博。用户可以在圈子里发帖子,回复帖子,点赞等等。项目上线不久就发现有很多用户在圈子里发广告,手段之丰富令人叹为观止啊。产品大哥昨天突然跑过来跟我说:现在圈子里有很多广告,而且发广告的人为了吸引别人的注意力经常会发出很多带有很多空行和空格的帖子跟回复。这样一个帖子就会沾满屏幕,十分影响使用。产品大哥要求我立即开发一套过滤逻辑,删除多余的空格和帖子,下面话不多说了,来一起看看详细的介绍:
需求
按照如下要求处理字符串
- 字符串中连续的空格数不能大于5,大于5时只保留5个
- 字符串中含有的连续空行数不能大于2,大于2时只保留2个
分析
- 记得之前的老大说过,字符串处理如果能不用正则表达式就不用,那个性能不好
- 分析一下实际应用场景,全是空格的一行也应该被算作空行。否则哪天发广告的人发现了这个漏洞就会利用起来。
- n和rn都需要处理
实现代码
/** * 移除多余空行和空格 */ publicstaticString dealRedundantSpaceAndBlankLine(String content) { if(content ==null|| content.length() ==0) { return""; } StringBuilder strAfterRemoveCRSB =newStringBuilder(); for(inti =0; i < content.length(); i++) { if(content.charAt(i) !='r') strAfterRemoveCRSB.append(content.charAt(i)); } String strAfterRemoveCR = strAfterRemoveCRSB.toString(); if(strAfterRemoveCR ==null|| strAfterRemoveCR.length() ==0) { return""; } StringBuilder resultSB =newStringBuilder(); String[] lines = strAfterRemoveCR.split("n"); intblankCount =0; for(String line : lines) { if(line ==null) { continue; } String lineTrim = line.trim(); if("".equals(lineTrim)) { blankCount++; if(blankCount <=2) { resultSB.append("n"); } }else{ blankCount =0; resultSB.append(dealSpace4OneLine(line)).append("n"); } } resultSB.deleteCharAt(resultSB.length() -1); returnresultSB.toString(); } /** * 移除1行中的多余空格 */ publicstaticString dealSpace4OneLine(String line) { if(line ==null||"".equals(line)) { return""; } intspaceCount =0; StringBuilder sb =newStringBuilder(); for(inti =0; i < line.length(); i++) { charcurChar = line.charAt(i); if(curChar ==' ') { spaceCount++; if(spaceCount <=5) { sb.append(' '); } }else{ spaceCount =0; sb.append(curChar); } } returnsb.toString(); } publicstaticvoidmain(String[] args) { String str ="呵呵 测试nnnn n rn将风控打扫房 间nnnn n n 快递费解封时代峰峻nrn 发的几点睡 "; String result = dealRedundantSpaceAndBlankLine(str); System.out.println(result); }
相关文章
- 《燕云十六声》红尘无眼完成图文攻略 12-25
- 《燕云十六声》阴阳如影完成图文攻略 12-25
- 《燕云十六声》悬檐之下四架椽屋图文攻略 12-25
- 《燕云十六声》2024最新公测时间介绍 12-25
- 《燕云十六声》有没有藏宝阁 12-25
- 《燕云十六声》制作公司介绍 12-25