本篇文章为大家展示了利用java如何去掉文本中的空格与空行,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
成都创新互联专注为客户提供全方位的互联网综合服务,包含不限于成都网站制作、做网站、外贸营销网站建设、珲春网络推广、微信小程序、珲春网络营销、珲春企业策划、珲春品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;成都创新互联为所有大学生创业者提供珲春建站搭建服务,24小时服务热线:18980820575,官方网址:www.cdcxhl.com
需求
按照如下要求处理字符串
字符串中连续的空格数不能大于5,大于5时只保留5个
字符串中含有的连续空行数不能大于2,大于2时只保留2个
分析
记得之前的老大说过,字符串处理如果能不用正则表达式就不用,那个性能不好
分析一下实际应用场景,全是空格的一行也应该被算作空行。否则哪天发广告的人发现了这个漏洞就会利用起来。
\n和\r\n都需要处理
实现代码
/** * 移除多余空行和空格 */ 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(); } /** * 移除1行中的多余空格 */ 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 = "呵呵 测试\n\n\n\n \n \r\n将风控打扫房 间\n\n\n\n \n \n 快递费解封时代峰峻\n\r\n 发的几点睡 "; String result = dealRedundantSpaceAndBlankLine(str); System.out.println(result); }
上述内容就是利用java如何去掉文本中的空格与空行,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注创新互联行业资讯频道。