栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java去掉文本中多余的空格与空行实例代码

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java去掉文本中多余的空格与空行实例代码

前言

最近因为工作的需要,在开发一个小型的圈子系统。功能类似一个简化的微博。用户可以在圈子里发帖子,回复帖子,点赞等等。项目上线不久就发现有很多用户在圈子里发广告,手段之丰富令人叹为观止啊。产品大哥昨天突然跑过来跟我说:现在圈子里有很多广告,而且发广告的人为了吸引别人的注意力经常会发出很多带有很多空行和空格的帖子跟回复。这样一个帖子就会沾满屏幕,十分影响使用。产品大哥要求我立即开发一套过滤逻辑,删除多余的空格和帖子,下面话不多说了,来一起看看详细的介绍:

需求

按照如下要求处理字符串

  • 字符串中连续的空格数不能大于5,大于5时只保留5个
  • 字符串中含有的连续空行数不能大于2,大于2时只保留2个

分析

  • 记得之前的老大说过,字符串处理如果能不用正则表达式就不用,那个性能不好
  • 分析一下实际应用场景,全是空格的一行也应该被算作空行。否则哪天发广告的人发现了这个漏洞就会利用起来。
  • n和rn都需要处理

实现代码

 
 public static String dealRedundantSpaceAndBlankLine(String content)
 {
  if (content == null || content.length() == 0)
  {
   return "";
  }
  StringBuilder strAfterRemoveCRSB = new StringBuilder();
  for (int i = 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 = new StringBuilder();
  String[] lines = strAfterRemoveCR.split("n");
  int blankCount = 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);
  return resultSB.toString();
 }

 
 public static String dealSpace4oneLine(String line)
 {
  if (line == null || "".equals(line)) {
   return "";
  }
  int spaceCount = 0;
  StringBuilder sb = new StringBuilder();
  for (int i = 0; i < line.length(); i++) {
   char curChar = line.charAt(i);
   if (curChar == ' ')
   {
    spaceCount++;
    if (spaceCount <= 5) {
     sb.append(' ');
    }
   } else {
    spaceCount = 0;
    sb.append(curChar);
   }
  }
  return sb.toString();
 }

 public static void main(String[] args) {
  String str = "呵呵  测试nnnn   n rn将风控打扫房  间nnnn n n  快递费解封时代峰峻nrn 发的几点睡 ";
  String result = dealRedundantSpaceAndBlankLine(str);
  System.out.println(result);
 }

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对考高分网的支持。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/144850.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号