C# 如何将文本文件中的几组单词放入数组中

标签 c# string parsing text text-files

我有一个包含这些单词的文本文件

PEOPLE
John
0218753458
ENTERPRISE
stock
30%
HOME
Indiana
West Virginia
PEOPLE
Vahn
031245678
ENTERPRISE
Inc
50%
HOME
melbourne
Australia

我想将这些文件拆分为一些字符串,这些字符串将分为 PEOPLE、ENTERPRISE 和 HOME 组。例如输出将是

第[0]部分

 PEOPLE
 John
 0218753458

第[1]部分

ENTERPISE
stock
30%

第[2]部分

HOME
Indiana
West Virginia

等等

我有一个使用计划

编辑#1(感谢@Slade)

string[] part = s.Split(new string[] { "PEOPLE","ENTERPRISE","HOME" }, StringSplitOptions.None);

我无法改变结构。 有什么办法可以保留标题吗?或者更好的方法来做到这一点?

最佳答案

不要使用||运算符,用于条件/逻辑 OR 表达式。相反,当像您一样填充数组元素时,请使用逗号,如下所示:

string[] part = s.Split(new string[] { "PEOPLE", "ENTERPRISE", "HOME" }, StringSplitOptions.None);

但是,除非您总是拥有这些标题,否则这不是尝试拆分文本文件的好方法。相反,您需要为文件定义一些结构。例如,如果您总是要使用全大写的标题,那么您可能需要首先将文本文件拆分为行,然后循环遍历每个元素,并在每次点击仅包含全大写字符的行时对元素进行分组.

就我个人而言,如果可能的话,我会更改文本文件结构,以便您可以在标题之前或之后使用一些符号来标记标题:例如:这是一个标题。这样,您可以分成几行,然后只需在行的开头查找 : 符号即可。

编辑

有关如何使用全大写 header 解析此内容的示例方法,请参阅我的代码示例 PasteBin .

注意:该行...

string[] lines = File.ReadAllLines(@"Sample.txt");

...可以替换为...

string textFromFile = File.ReadAllText(@"Sample.txt");
string[] lines = textFromFile.Split(new string[1] { System.Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries);

关于C# 如何将文本文件中的几组单词放入数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8832929/

相关文章:

java - 如何在 junit 测试中将值初始化为字符串数组?

Android 4.0 Ice Cream Sandwich 解析器错误

java - 在Java中提取XML属性(ISBNDB)

c# - 如何创建 dpi 感知 wpf 应用程序?

javascript - 如何检查字符串是否只包含某些字母,如果包含其他字母,则返回 false

c# - TreeViewItems 和键绑定(bind)

c# - 文本框中的数字值添加逗号

javascript - 在解析期间检测内容中的正则表达式

C# Selenium Web 驱动程序和 CSS : Start point

c# - 当背景为白色时,如何在 Windows Phone 8 中为列表框赋予颜色?带有图像按钮