本篇文章为大家展示了利用java如何去掉文本中的空格与空行,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
需求
按照如下要求处理字符串
字符串中连续的空格数不能大于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(); } 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如何去掉文本中的空格与空行,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注编程网行业资讯频道。