我有一个包含以下字词的文字文件:
姓名:Bob
年龄:3
我的c#代码是:
string text = File.ReadAllText("path to a.txt");
我如何对此进行子串,以便我可以获得值3
和Bob
?
答案 0 :(得分:6)
假设您正在从文件中读取数据,那么这应该很有效:
Dictionary<string, string> pairs =
File
.ReadAllLines(@"50780830.txt")
.Select(l => l.Split(':'))
.Where(xs => xs.Length == 2)
.Where(xs => !String.IsNullOrEmpty(xs[0].Trim()))
.ToDictionary(xs => xs[0].Trim(), xs => xs[1].Trim());
Console.WriteLine(pairs["Name"]);
Console.WriteLine(pairs["Age"]);
当我跑步时,我得到:
Bob 3
答案 1 :(得分:1)
您可以使用Split和Substring
功能实现此目的:
String str = "Name: Bob\r\n\r\nAge: 32";
String Name = str.Split(new String[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries)[0];
Name = Name.Substring(Name.IndexOf(':') + 1).Trim();
String Age = str.Split(new String[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries)[1];
Age = Age.Substring(Age.IndexOf(':') + 1).Trim();
Console.WriteLine(Name + "," + Age);
答案 2 :(得分:0)
您只需一行即可尝试:
IEnumerable<String> list = str.Split('\n').Select(s => s.Split(':')[1]);
第一个分裂意思是隔离每一行。 第二个分裂意思是在':'之后取词。