本篇文章为大家展示了利用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();
}
/**
* 移除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如何去掉文本中的空格与空行,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注亿速云行业资讯频道。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。