C# 如何从txt文件中查找子字符串的位置和长度
我有一个文本文件,其中包含我可以用来获取的信息 字符串。子字符串(位置、长度) .txt文件,其中包含位置和长度C# 如何从txt文件中查找子字符串的位置和长度,c#,.net,text,substring,C#,.net,Text,Substring,我有一个文本文件,其中包含我可以用来获取的信息 字符串。子字符串(位置、长度) .txt文件,其中包含位置和长度 Element Length Position Name 30 1 Age 2 31 ID 1 33 DOB 2 34 我想做的是循环遍历文本文件中的规则并获得 字符串数据。使用File.ReadLines和string.S
Element Length Position
Name 30 1
Age 2 31
ID 1 33
DOB 2 34
我想做的是循环遍历文本文件中的规则并获得
字符串数据。使用
File.ReadLines
和string.Split
,下面是一些LINQ魔术:
String Data = "NAMENAMENAMENAMENAMENAMENAMEAGE119861126";
var substringInfos = File.ReadLines("Path")
.SkipWhile(l => string.IsNullOrWhiteSpace(l)).Skip(1) // skip empty lines and the header
.Select(l => l.Split(new[] { ' ', '\t' }, StringSplitOptions.RemoveEmptyEntries))
.Where(split => split.Length == 3)
.Select(split => new
{
Element = split[0],
Length = int.Parse(split[1]),
Position = int.Parse(split[2])
});
foreach (var info in substringInfos)
{
string substring = Data.Substring(info.Position, info.Length);
Console.WriteLine("Element: '{0}' Value: '{1}'", info.Element, substring);
}
结果:
Element: 'Name' Value: 'AMENAMENAMENAMENAMENAMENAMEAGE'
Element: 'Age' Value: '11'
Element: 'ID' Value: '9'
Element: 'DOB' Value: '86'
你将长度和位置值保存在一个随机txt文件中?这更像是一个“这是我的作业,你能帮我做吗”问题。你能给我解释一下substringInfo变量吗?你如何知道在哪里拆分或跳过?@HXD:你不明白LINQ查询的哪一部分?第一行跳过所有空行,第一行不为空,即标题。然后它按空格或制表符拆分每一行,因为您的示例数据似乎按制表符拆分,但我不确定这是否正确。然后我检查字符串[]是否包含三个元素,否则这一行将被忽略。这三个标记用于初始化匿名类型。在
foreach
中执行LINQ查询,并将结果写入控制台。
Element: 'Name' Value: 'AMENAMENAMENAMENAMENAMENAMEAGE'
Element: 'Age' Value: '11'
Element: 'ID' Value: '9'
Element: 'DOB' Value: '86'