【发布时间】:2021-11-03 20:59:48
【问题描述】:
我计算字符串中文件的行数。
String testing=newString(Files.readAllBytes(Paths.get(path)),StandardCharsets.UTF_8).replaceAll("\\r\\n{1}", "");
什么正则表达式或类似的东西可以用来去除单行转换,但留下双行?
例如:
文件中的元素如下所示:
A
1
b
;
d
当我这样做时:
String testing = new String(Files.readAllBytes(Paths.get(path)), StandardCharsets.UTF_8).replaceAll("\\r\\n", "");
LinkedList<Character> alphabetList = testing.chars().mapToObj(i -> (char)i).collect(Collectors.toList());
我知道列表包含这样的元素:
A
\\r
\\n
\\r
\\n
1
\\r
\\n
b
我需要删除单个的,并将单个的替换为“”。
【问题讨论】:
-
这是否意味着如果有 2 个或更多空行需要删除一个?在
af1和23131之间,预期的字符串显示一个空行,而输入中有两个。 -
好吧,让我猜猜:
.replaceAll("(\\R{2,})\\R|(\\R)\\R", "$1$2")适合你,不是吗? -
@WiktorStribiżew 不完全。我会尝试解释当我读取字符串
collectors.ToList我有字符:'A' next '\r' next '\n' then letters again.and在一个地方连续两次 '\r' '\n' '\r' '\n' 和你的方法一切都保留了,但双被删除了。你能告诉我如何制作所有单 \r \n删除,双替换为“”(空白) -
我不太明白你想要什么。 This?
-
@WiktorStribiżew 我现在将对其进行编辑以使其更清晰