最近因为工作的需要,在开发一个小型的圈子系统。功能类似一个简化的微博。用户可以在圈子里发帖子,回复帖子,点赞等等。项目上线不久就发现有很多用户在圈子里发广告,手段之丰富令人叹为观止啊。产品大哥昨天突然跑过来跟我说:现在圈子里有很多广告,而且发广告的人为了吸引别人的注意力经常会发出很多带有很多空行和空格的帖子跟回复。这样一个帖子就会沾满屏幕,十分影响使用。产品大哥要求我立即开发一套过滤逻辑,删除多余的空格和帖子,下面话不多说了,来一起看看详细的介绍:
需求
按照如下要求处理字符串
分析
实现代码
/**
* 移除多余空行和空格
*/
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);
}
原神祈愿模拟器最新版
原神祈愿模拟器手机版是一款完整汉化的趣味原神抽卡模拟小游戏,
宝宝森林美食完整版
宝宝森林美食游戏最新版是一款十分有趣的休闲益智游戏,帮助宝宝
g沙盒仇恨官方英文版(gorebox)
G沙盒仇恨英文原版是一款最近非常火热的沙盒模拟类游戏,在这里
迷你世界测试服最新版2024
迷你世界测试服2021最新版,即迷你世界的先遣服版本,用户能
闪耀暖暖最新版2024
闪耀暖暖手游这是非常好玩的换装手游,游戏内容丰富有趣,游戏环