3 回答
TA贡献2039条经验 获得超7个赞
尽管您没有指定它,但我认为您的文件将有多行,每行都与您的描述匹配,如下所示:
00 0120
0000 0111111111
(etc.)
因此,您需要读取每一行,使用它来解析它.Split并查找您想要的值。如果您只需要执行一次,最好是在阅读后立即检查每一行,使用 StreamReader,如示例所示:
using System;
using System.IO;
class Test
{
public static void Main()
{
char[] delimiterChars = { ' ', ',', '.', ':', '\t' };
using (StreamReader sr = new StreamReader(@"d:\temp\TestFile.txt"))
{
string line = sr.ReadLine();
string[] words = line.Split(delimiterChars);
if (words[0] == "00")
{
Console.WriteLine($"Found it, yay! words[0]={words[0]}, words[1]={words[1]}");
}
}
}
}
如果您想多次搜索,您可以将拆分的单词放入某些数据结构(可能是 a)中,Dictionary而不是搜索,然后根据需要多次搜索。
TA贡献1900条经验 获得超5个赞
对于您的问题1:如何找到特定值(如布尔搜索)
您必须检查该单词是否属于特定类型。例如:
// Checks if word is of number (change it as per your requirement) if (int.TryParse (words[i], out int _) && int.TryParse (words[i+1], out int _)) { ...Statements... }
对于你的问题2:如何将相应的值返回到它自己的字符串
您已经从文件中获取了字符串形式的数据。因此,请根据需要进行存储和处理。
TA贡献2011条经验 获得超2个赞
像这样?:
char[] delimiterChars = { ' ', ',', '.', ':', '\t' };
string text = "one\ttwo three:four,five six seven";
string[] words = text.Split(delimiterChars);
List<string> values = new List<string>();
for (int i = 0; i < words.Length; i+=2)
{
if(words.Length > i)
if (words[i].Length >= 2 && words[i].Length <= 12) {
if (words[i+1].Length >= 4 && words[i+1].Length <= 12)
{
values.Add(words[i+1]);
}
}
}
我真的不确定我是否完全理解你的问题:P
(如果我觉得不对,请发表评论,我会再次删除答案)
- 3 回答
- 0 关注
- 160 浏览
添加回答
举报