C# 如何通过选择多行反转字符串内容?
我在网上找到了很多关于反转字符串和整个文本文件的资源,但是没有任何东西能产生我想要的结果 例如,基本文本文件可能如下所示:C# 如何通过选择多行反转字符串内容?,c#,reverse,record,C#,Reverse,Record,我在网上找到了很多关于反转字符串和整个文本文件的资源,但是没有任何东西能产生我想要的结果 例如,基本文本文件可能如下所示: 1 Person One Company Name 100 San Francisco Blvd, 000
1
Person One
Company Name
100 San Francisco Blvd, 000
Dublin CA 94568
2
Person Two
Company Name
111 Grove St, 000
Montreal CANADA 93940
这就是文件的输入方式。我要找的是:
2
Person Two
Company Name
111 Grove St, 000
Montreal CANADA 93940
1
Person One
Company Name
100 San Francisco Blvd, 000
Dublin CA 94568
我在网上尝试了几种解决方案,通常会出现以下情况之一:
1) 正文颠倒了。例如,公司名称变为emaN ynapmoC
或
2) 类似的事情发生了:
Montreal CANADA 93940
111 Grove St, 000
Company Name
Person Two
2
给定的是列长度(我总是知道地址字段中有多少行),我总是知道总共有多少行。每条记录之间有一个空白行
我试图弄清楚如何将filename.txt转换为filename-reversed.txt
TLDR:我想取x行数并反转它们,这样它们就不会混合/混乱。您需要将文件分解为“记录”。一旦你有了记录,而不仅仅是行,倒序应该是一项简单的任务
最简单的方法是在每第n行中断时将文件拆分为字符串。您可以将这些N行字符串加载到列表中。然后,只需反向遍历列表并将记录转储到文件中。您需要将文件拆分为“记录”。一旦你有了记录,而不仅仅是行,倒序应该是一项简单的任务 最简单的方法是在每第n行中断时将文件拆分为字符串。您可以将这些N行字符串加载到列表中。然后,只需反向遍历列表并将记录转储到文件中。在python中:
blocks = []
with open(filename, "r") as f:
block = ""
for i, line in enumerate(f):
block += line
if i % block_line_size == 0:
blocks.append(block)
block = ""
with open(new_file_name, "w") as f2:
for block in blocks[::-1]:
f2.write(block)
在python中:
blocks = []
with open(filename, "r") as f:
block = ""
for i, line in enumerate(f):
block += line
if i % block_line_size == 0:
blocks.append(block)
block = ""
with open(new_file_name, "w") as f2:
for block in blocks[::-1]:
f2.write(block)
那么,您需要的是从字符串创建一个记录数组,对吗?这个字符串中的记录由一个双行分隔符分隔是的,就是这样。我需要能够以7行为例,并用其他7行将其反转。每7行是一条记录。那么问题是什么?算法看起来非常简单。那么,您需要的是从字符串创建一个记录数组,对吗?这个字符串中的记录由一个双行分隔符分隔是的,就是这样。我需要能够以7行为例,并用其他7行将其反转。每7行是一条记录。那么问题是什么?这个算法看起来很简单。@ryanyyu你可能觉得很简单,但不是。。它实现了OP所期望的:)。是否要为代码编写一些解释?或者甚至是一个代码演示?正则表达式有点神秘。哦,我明白了。它尝试匹配一个文字换行符,紧接着是另一个换行符(在记录中显示为空行)。也许值得解释一下。也许我遗漏了一些明显的东西,但我不能使用。在组中反转?事实上,我理解其余的部分,这是非常聪明的正则表达式。@rohanharrison
使用System.Linq
?@Ryanyuyuyu在你看来可能是这样,但不是。。它实现了OP所期望的:)。是否要为代码编写一些解释?或者甚至是一个代码演示?正则表达式有点神秘。哦,我明白了。它尝试匹配一个文字换行符,紧接着是另一个换行符(在记录中显示为空行)。也许值得解释一下。也许我遗漏了一些明显的东西,但我不能使用。在组中反转?实际上,我理解其余的部分,这是非常聪明的正则表达式。@rohanharrison使用System.Linq
?问题被标记为c
+这个答案即使在python中也不会返回输出操作exts这个答案被标记为c
+这个答案即使在python中也不会返回输出操作exts