java字符串去除空行怎么操作
问题描述:java字符串去除空行怎么操作
推荐答案 本回答由问问达人推荐
在Java中,你可以使用多种方法来去除字符串中的空行。以下是几种常见的操作方法:
1.使用replaceAll()方法:你可以使用replaceAll()方法和正则表达式来替换字符串中的空行。示例如下:
String str = "Hello\n\nWorld\n\n\n";
String trimmedStr = str.replaceAll("(?m)^\\s*$[\n\r]{0,}", "");
System.out.println(trimmedStr); // 输出: "Hello\nWorld"
在上述示例中,使用正则表达式"\s*$[\n\r]{0,}"匹配连续的空行,并将其替换为空字符串。
2.使用split()方法和join()方法的组合:你可以使用split()方法将字符串拆分成行数组,然后使用join()方法将非空行重新组合成字符串。示例如下:
String str = "Hello\n\nWorld\n\n\n";
String[] lines = str.split("\\r?\\n");
String trimmedStr = String.join("\n", Arrays.stream(lines)
.filter(line -> !line.trim().isEmpty())
.toArray(String[]::new));
System.out.println(trimmedStr); // 输出: "Hello\nWorld"
在上述示例中,首先使用split("\r?\n")将字符串拆分成行数组,然后使用filter()方法过滤掉空行,最后使用join()方法将非空行重新组合成字符串。
3.使用Scanner类:你可以使用Scanner类逐行读取字符串,并过滤掉空行。示例如下:
String str = "Hello\n\nWorld\n\n\n";
Scanner scanner = new Scanner(str);
String trimmedStr = "";
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
if (!line.trim().isEmpty()) {
trimmedStr += line + "\n";
}
}
scanner.close();
System.out.println(trimmedStr); // 输出: "Hello\nWorld"
在上述示例中,使用Scanner类逐行读取字符串,然后使用trim()方法和isEmpty()方法过滤掉空行,最后重新组合非空行。
通过使用这些方法,你可以轻松去除Java字符串中的空行,以满足你的处理需求。
查看其它两个剩余回答