当前位置:首页 > Java

java如何删除空行

2026-03-21 00:36:14Java

删除Java字符串中的空行

使用正则表达式替换空行是最常见的方法。空行通常由行首和行尾之间的空白字符(包括换行符)组成。

String text = "Line1\n\nLine2\n \nLine3";
String result = text.replaceAll("(?m)^[ \t]*\r?\n", "");
System.out.println(result);

正则表达式说明:

java如何删除空行

  • (?m) 启用多行模式,使 ^$ 匹配每行的开始和结束
  • ^ 匹配行首
  • [ \t]* 匹配零个或多个空格或制表符
  • \r?\n 匹配Windows或Unix风格的换行符

使用Apache Commons Lang库

如果项目已经使用了Apache Commons Lang库,可以使用StringUtils类更简洁地处理:

import org.apache.commons.lang3.StringUtils;

String text = "Line1\n\nLine2\n \nLine3";
String result = StringUtils.replacePattern(text, "(?m)^[ \t]*\r?\n", "");

处理多平台换行符

不同操作系统使用不同的换行符(Windows使用\r\n,Unix使用\n)。以下方法可以处理各种换行符:

java如何删除空行

String text = "Line1\r\n\r\nLine2\n\nLine3\r \r\nLine4";
String result = text.replaceAll("(?m)^\\s*\r?\n", "");

保留非空白的单行

如果需要保留包含空白字符但不完全为空的单行:

String text = "Line1\n  \nLine2\n\t\nLine3";
String result = text.replaceAll("(?m)^[ \t]+\r?\n", "");

流式处理文本文件

当处理大型文本文件时,可以使用流式处理逐行读取并过滤空行:

try (Stream<String> lines = Files.lines(Paths.get("input.txt"))) {
    List<String> nonEmptyLines = lines
        .filter(line -> !line.trim().isEmpty())
        .collect(Collectors.toList());

    Files.write(Paths.get("output.txt"), nonEmptyLines);
}

标签: 空行java
分享给朋友:

相关文章

如何学好java

如何学好java

理解基础概念 掌握Java的核心概念是学习的基础。包括数据类型、变量、运算符、控制流(如循环和条件语句)、数组等。理解面向对象编程(OOP)的四大特性:封装、继承、多态和抽象。 实践编程练习 通过实…

java如何连接mysql

java如何连接mysql

连接 MySQL 数据库的基本步骤 添加 MySQL 驱动依赖 在项目中引入 MySQL 的 JDBC 驱动。如果使用 Maven,在 pom.xml 中添加以下依赖: <dependency…

java如何解决高并发

java如何解决高并发

Java 高并发解决方案 使用线程池优化资源管理 线程池(如 ThreadPoolExecutor)能避免频繁创建和销毁线程的开销。通过核心线程数、最大线程数和任务队列的合理配置,可以平衡系统负载。例…

java中如何输入

java中如何输入

输入方法 在Java中,可以通过多种方式实现输入操作,具体取决于输入来源和需求。以下是几种常见的输入方法: 使用Scanner类 Scanner类是Java中最常用的输入工具,适用于从控制台或文件读…

java中如何获取当前时间

java中如何获取当前时间

获取当前时间的几种方法 使用 java.time 包(Java 8及以上推荐) import java.time.LocalDateTime; LocalDateTime currentTime =…

如何学好java编程

如何学好java编程

理解基础概念 掌握Java的基础语法是学习的起点。变量、数据类型、运算符、控制结构(如循环和条件语句)是核心内容。面向对象编程(OOP)的概念(类、对象、继承、多态、封装)是Java的核心,需深入理解…